C++ 模板类继承
template<class T> class A { protected: void Test() { printf("%f",0.1f); } }; template<class T> class B:public A<T> { public: void Test2() { Test(); } };
去除模板可以正常的使用,但是当加上模板后,父类的Test函数将不能正常被调用。
错误 C3861 “Test”: 找不到标识符
template<class T>
class A
{
protected:
void Test() {
printf("%f",0.1f);
}
};
template<class T>
class B:public A<T>
{
public:
void Test2() {
this->Test();
}
};
使用父类的方法需要加上zhis关键字,用对象的地址去call方法。

从内存上看没有方法表,从调用过程看直接使用编译过的地址去call父类的方法。

浙公网安备 33010602011771号