我編程在C++,我有3類,相互繼承:實現其他類的方法,以及使用一個類的方法,自己的
Hatchback -> Car -> Vehicle;
我想打印從每個屬性類使用void 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個類的數據......我寧願每個類都處理它自己的方法和功能!
不僅如此,我有很多其他類,包括汽車,公共汽車和貨車,所有汽車,集裝箱,油罐車,平板車,摩托車,過境等ETC ETC所有汽車,貨車和巴士inhert。
所以我不想在每個單獨的底部派生類中編寫Print Vehicle!
如果有辦法做到這一點,我將非常感謝迴應。
我試過使用虛擬函數,但得出的結論是,他們只是選擇在運行時使用哪種方法,而不是合併打印功能。
感謝您的閱讀!對不起,如果它的模糊或Noob問題...我是新的堆棧溢出! :)