如何在给定包含类的实例的情况下实例化嵌套类



是否可以做这样的事情:

class BaseClass
{
public:
    class NestedClass
    {
    };
};
BaseClass foo;
foo.NestedClass bar;

如何从实例中获取类型?

您需要做的是:

BaseClass::NestedClass bar;

您无法避免使用范围解析运算符,但可以在适当的范围内将typedef作为简写:

typedef BaseCLass::NestedClass NestedClass;

编辑:根据所讨论的更改,如果您希望实例中的类型,在 c++11 中您可以使用 decltype

decltype(foo)::NestedClass;

但这毫无意义,因为在这种情况下decltype会返回 BaseClass。

使用范围解析运算符以及基类名称:

BaseClass::NestedClass bar;

相关内容

最新更新