我想知道我的编码方式是否正确。我可以创建一个继承模板类的模板类吗?如果可以的话,以下代码是否正确:
template<typename Type>
class A{
public:
A(){};
method_A(){//do whatever}
protected:
int a;
}
第二类是:
template<typename Type>
class B:public<Type> A {
public:
B(){};
method_B(){this->a=0; this->method_A();}
protected:
int b;
}
我的最后一堂课是:
class C:public<double> B{
public:
C(){};
method_C(){ b = 0; method_B();}
protected:
int c;
}
为什么是this->
在 B 类中是强制性的,但在 C 类中不是强制性的?一般来说,我应该总是添加this->
引用属于同一类的参数或方法?
C++03 和 C++11 标准的第 14.6.2p3 节专门解决了这一问题:
在类模板或类模板成员的定义中,如果类模板的基类依赖于模板参数,则在类模板定义点的非限定名称查找期间不会检查基类范围或成员或在类模板或成员的实例化期间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)