如果下面的类不是模板,我可以在派生类中简单地使用 x。但是,对于下面的代码,我必须使用 this->x。为什么?模板
如果下面的类不是模板,我可以直接 x
在 derived
类中使用。但是,对于下面的代码,我 必须 使用 this->x
。为什么?
template <typename T>
class base {
protected:
int x;
};
template <typename T>
class derived : public base<T> {
public:
int f() { return this->x; }
};
int main() {
derived<int> d;
d.f();
return 0;
}