我对 C++ 重新定义有疑问。我在派生类中分配内存,所以我需要在基类中保留这个内存。因此,我需要考虑 Base 类中的属性与 Derived 类中的属性相同,我不知道这在 C++ 中是否可行。
class Base {
protected:
float * a;
Base() {}
public:
virtual void reset() {
a = 0;
}
virtual void exec() {
printf("Memory a: %x\n",a);
}
};
class Derivada: virtual public Base {
protected:
float * a;
Derivada() {}
virtual void reset() {
a = new float[256];
}
};
int main() {
Derivada *hija= new Derivada();
hija->reset();
hija->exec();
delete hija;
}
我真的需要做重载,因为这是我真正问题的一个例子。对于 CVS 的两个不同的类 Base,我的两个分支中的每个分支一个,我有相同的测试(派生一个主代码)。
在一个 Base 类中,我有这个属性,而在另一个 Base 类中,我没有这个属性,所以我必须将它放在 Derived 类中进行编译。
我不想制作两个不同的测试代码,所以我需要覆盖属性