重点:
模板继承,对于类模板,如果它的基类也是依赖于模板参数的,那么对它而言即使 x 是继承而来的,使 用 this->x 和 x 也不一定是等效的。
template<typename T>
class Base
{
public:
void bar() { cout << 10 << endl; };
};
template<typename T>
class Derived :Base<T>
{
public:
void foo()
{
bar();
};
};
int main()
{
Derived<int> data;
data.foo();
return 0;
}
对于类模板继承的问题。需要使用this->函数或者Base<T>::函数。
template<typename T>
class Derived :Base<T>
{
public:
void foo()
{
//两种方式
this->bar();
Base<T>::bar();
};
};