模板基类初始化 在VisualC++中,下面的代码被接受,G++将生成错误: “派生类没有任何字段名基” 哪个符合标准 template <class T> class Base { public: Base(){}; }; template <class T> class Derived:public Base<T> { public: Derived():Base(){} }; 模板 阶级基础 { 公众: Base(){}; }; 模板 派生类:公共基 { 公众: 派生():基(){} };
顺便说一句:两者都接受模板基类初始化 在VisualC++中,下面的代码被接受,G++将生成错误: “派生类没有任何字段名基” 哪个符合标准 template <class T> class Base { public: Base(){}; }; template <class T> class Derived:public Base<T> { public: Derived():Base(){} }; 模板 阶级基础 { 公众: Base(){}; }; 模板 派生类:公共基 { 公众: 派生():基(){} };,c++,templates,gcc,initialization,C++,Templates,Gcc,Initialization,顺便说一句:两者都接受 Derived():Base<T>(){} Derived():Base(){} 因此,同时,我将遵循gccMSVC++是不正确的基础是一个模板,而不是类型 请注意,在通常情况下,Base在Derived的范围内查找,这意味着它将首先找到从Base继承的注入类名,该类名引用类型Base。但是由于您有一个依赖的基类,因此找不到从base继承的名称(基类的作用域未被查看)
Derived():Base<T>(){}
Derived():Base(){}
因此,同时,我将遵循gccMSVC++是不正确的<代码>基础是一个模板,而不是类型 请注意,在通常情况下,
Base
在Derived
的范围内查找,这意味着它将首先找到从Base
继承的注入类名,该类名引用类型Base
。但是由于您有一个依赖的基类,因此找不到从base
继承的名称(基类的作用域未被查看)