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父类的方法。
标签:继承,void,C++,class,template,Test,public,模板 From: https://www.cnblogs.com/zjr0/p/16716239.html