¿Por qué tengo que acceder a los miembros de la clase base de la plantilla a través del puntero this?
Si las siguientes clases no fueran plantillas, simplemente podría tenerx
en elderived
clase. Sin embargo, con el siguiente código, yoTiene que utilizarthis->x
. ¿Por qué?
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;
}