Ale*_*nch 3 c++ polymorphism class multiple-inheritance
我正在用C++编程,我有3个相互继承的类:
Hatchback -> Car -> Vehicle;
Run Code Online (Sandbox Code Playgroud)
我想使用void print()方法打印每个类的属性,
每个类都有一个Print方法,可以打印自己的属性.
void Vehicle::print()
{
// Vehicle attributes
}
void Car::print()
{
// Car attributes
}
void Hatchback::print()
{
// Hatchback Attributes
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个对象,它在一个构造函数中初始化ALL类中的所有属性:
Hatchback hatchback("L880UCD", "Vauhall", "Corsa",
"White", "None", "Car", "Hatchback",
3, 5, "Manual", 3, 2, 1);
Run Code Online (Sandbox Code Playgroud)
问题是,我想使用一种打印方法打印所有属性,所以当我打电话时,
object.print();
Run Code Online (Sandbox Code Playgroud)
它贯穿车辆打印方法,然后是Car打印方法,然后是Hatchback Print方法.
我知道我可以打印Hatchback打印方法中的所有属性,因为每一项都继承了.如果可能的话,我想避免在一个类方法中打印所有3个类的数据......我宁愿每个类处理它的OWN方法和函数!
不仅如此,我还有很多其他课程,包括汽车,公共汽车和货车,包括汽车,集装箱,油轮,平板车,摩托车,过境ETC等所有汽车,货车和公共汽车.
所以我不想在每个底层派生类中编写Print Vehicle!
如果有办法做到这一点,我会非常感谢你的回应.
我尝试过使用虚函数,但得出的结论是,他们只是选择在运行时使用哪种方法,而不是合并打印功能.
谢谢阅读!对不起,如果它是一个模糊或Noob问题...我是Stack Overflow的新手!:)
如果您询问是否可以从派生类调用基类方法,那么是的,您可以:
void Vehicle::print() {
std::cout << "Vehicle attributes" << std::endl;
}
void Car::print() {
Vehicle::print();
std::cout << "Car attributes" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |