Я прошу сделать Vec, который наследует от ABR.Этот ABR получил 3 указателя в качестве атрибута с типом ABR.Я хотел бы знать, может ли тип этих указателей стать Vec при преобразовании в Vec без параметров шаблона?
вот код соммы, чтобы изобразить его:
class Base
{
protected:
Base* x;
public:
Base(): x(nullptr){}
Base* getVal() {return x;}
};
class Derived: public Base
{
private:
int y;
public:
Derived():Base(), y(-1) {}
Derived(int Y): y(Y){}
Derived* getVal() {return x;}
void setVal(Derived *ptr){this->x = ptr;}
};
int main()
{
Derived D(5), c(7),*ptrToC=&c;
D.setVal(ptrToC);
D.getVal();
}
Этот код вернет ошибкув "D.getVal ()", поскольку x по-прежнему является указателем Base, поэтому возможно ли сделать так, чтобы он имел тот же тип, что и класс, в котором он находится?