如何在给定包含类的实例的情况下实例化嵌套类
How to instantiate a nested class given an instance of the containing class
是否可以做这样的事情:
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;
相关文章:
- 如果 std::vector::clear() 不是静态的,如何在没有实例的情况下调用它?
- 如何在没有实例的情况下获取非静态方法的类型?
- 对于多态类型T,如何在没有类型T实例的情况下获得指向T的虚拟表的指针
- 我们可以在没有新实例化的情况下声明一个抽象方法来返回抽象超类中的子类对象吗
- 为什么可以在没有实例变量的情况下访问静态回调方法中的静态成员变量?
- 在不使用默认构造函数的情况下声明 POD 结构时,会实例化什么?
- 如何在不创建实例的情况下获取类的方法成员的类型?
- 如何在没有(constexpr)实例的情况下反省到boost::hana::map<...>?
- 如何在不实例化派生类的情况下管理一组派生类枚举
- 我可以在没有任何实例变量的情况下使用 decltype 吗?
- 为什么在这种情况下创建临时实例不起作用?
- C++ 如何在不显式强制转换的情况下降级函数调用中的类实例
- C :在没有对象实例的情况下调用非静态成员函数
- 在不实例化的情况下调用不同派生类的虚拟方法
- 在我的情况下,我需要销毁辛格尔顿实例吗?
- 如何在不引起实例化的情况下获取功能模板的签名
- 在不指定实例化的情况下调用类模板的静态方法的方法
- 是否可以在不实例化派生类的情况下调用该类的虚拟函数
- 如何在给定此定义的情况下创建类的实例
- C 实例化对象,在没有指针的情况下,其他类构造函数中没有默认构造函数