如何从派生类访问模板基类中用户定义的类型
How to access a user defined type in a template base class from a derived class?
我创建了一个模板类(TBase),它在其主体中定义了另一个类(BaseUDT)。
#pragma once
template<class T>
class TBase
{
public:
class BaseUDT
{
public:
int a;
};
T m_base;
};
现在,我创建了一个派生自TBase的类(TDerived)。
template<class T>
class TDerived : public TBase<T>
{
public:
T m_derived;
BaseUDT m_baseUDT;
};
此代码在Visual Studio上编译,但当我尝试在Mac计算机上的Xcode上编译时,它会引发编译错误。使用TBase::BaseUDT也不起作用。
我一直在尝试浏览ISO c++文档,但到目前为止还没有找到任何相关的内容。
它的名称是依赖的-这样声明它:
template<class T>
class TDerived : public TBase<T>
{
public:
T m_derived;
typename TBase<T>::BaseUDT m_baseUDT;
};
相关文章:
- std::具有相同基类的类的变体
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 基类中的函数名称解析
- C++初始化基类
- 如何通过派生类函数更改基类中的向量
- 如何定义一个纯抽象基类
- 如何使用基类指针引用派生类成员
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何引用基类的派生类?
- 如果基类包含双指针成员,则派生类的构造函数
- 在模板基类中为继承类中的可选重写生成虚拟方法
- 为什么此派生对象无法访问基类的后递减方法?
- 公开最直接的基类模板名称
- 当基类是依赖类型时,这是一个缺陷吗
- 如何使基类的运算符对基类的可变参数数可见(请参阅下面的代码)?
- 模板基类中的静态变量
- 自定义异常中的用户定义的空构造函数,具有多个继承和抽象基类
- 如何从派生类访问模板基类中用户定义的类型