【发布时间】:2020-08-31 04:01:03
【问题描述】:
当我更改基类中的值,然后创建子类的对象时,使用空参数而不是更改的值创建子类。 有没有办法用基类的参数来实现派生类的对象?
示例:
Base.h
class Base
{
class Child;
public:
int number = 0;
Child *chilObject;
void Setup()
{
number = 5;
childObject = new Child;
}
};
Child.h
class Child :
public Base
{
};
主要
int main()
{
Base base;
base.Setup();
cout << base.number << " : " << base->chilObject.number << endl;
cout << << endl;
}
输出:5 : 0
我只是想问是否有办法让派生类对象自动获取基类变量。
【问题讨论】:
-
您谈论“基”类和“派生”类,但我在您的代码中看不到任何继承。
-
即使假设
Child派生自Base,那么childObject与其拥有的Base实例没有直接联系。这不是你使用继承的方式 -
这不是继承,这是组合(某种意义上的)。
class Child;是一个与Base没有已知关系的类的前向声明。Child *chilObject;声明了一个指向Child的指针——不是继承。 -
我更新了问题并添加了class child,希望现在更清楚了。
-
为什么基类甚至对子类有引用,只有子类应该对基类有引用
标签: c++ derived-class