我在用 C++ 编程,我有 3 个相互继承的类:
Hatchback -> Car -> Vehicle;
我想使用 void print()
方法打印每个类的属性,
每个类都有打印自己属性的 Print 方法。
void Vehicle::print()
{
// Vehicle attributes
}
void Car::print()
{
// Car attributes
}
void Hatchback::print()
{
// Hatchback Attributes
}
我创建了一个对象,它在一个构造函数中初始化所有类的所有属性:
Hatchback hatchback("L880UCD", "Vauhall", "Corsa",
"White", "None", "Car", "Hatchback",
3, 5, "Manual", 3, 2, 1);
问题是,我想使用一种打印方法打印所有属性,所以当我调用时,
object.print();
它贯穿了车辆打印方法,然后是汽车打印方法,然后是两厢车打印方法。
我知道我可以打印 Hatchback 打印方法的所有属性,因为一切都是继承的。如果可能的话,我想避免在一个类方法中打印所有 3 个类的数据......我宁愿每个类都处理它自己的方法和函数!
不仅如此,我还有很多其他类别,包括全部继承自车辆的汽车、公共(public)汽车和卡车,以及全部继承自汽车、卡车和公共(public)汽车的容器、油轮、平板车、摩托车、公交等。
所以我不想在每个底层派生类中都编写 Print Vehicle!
如果有办法做到这一点,我将不胜感激。
我尝试过使用虚函数,但得出的结论是它们只是在运行时选择使用哪种方法,而不是合并打印函数。
感谢阅读!抱歉,如果这是一个模糊或菜鸟问题...我是 Stack Overflow 的新手! :)
最佳答案
如果您问是否可以从派生类调用基类方法,那么可以:
void Vehicle::print() {
std::cout << "Vehicle attributes" << std::endl;
}
void Car::print() {
Vehicle::print();
std::cout << "Car attributes" << std::endl;
}
关于c++ - 使用一个实现其他类方法的类方法以及它自己的类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5273803/