Я программирую на 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();
он проходит через метод печати транспортного средства, затем метод печати Car, затем метод печати хэтчбека.
Я знаю, что МОГУТ распечатать все атрибуты из метода печати Хэтчбек, потому что все унаследовано.Если возможно, я бы хотел избежать печати всех трех данных классов в одном методе класса ... Я бы предпочел, чтобы каждый класс имел свои СОБСТВЕННЫЕ методы и функции!
Мало того, у меня МНОГО других классов, включаяАвтомобиль, автобус и грузовик, которые ВСЕ наследуют от автомобиля, и контейнер, танкер, бортовой, мотоцикл, транзитный ETC и т. Д., Которые ВСЕ наследуются от автомобиля, грузовика и автобуса.
Так что я не хочу писать Print Vehicle вкаждый нижний производный класс!
Если есть способ сделать это, я был бы очень признателен за ответ.
Я пытался использовать виртуальные функции, но пришел к выводу, что они простовыберите, какой метод использовать во время выполнения, а не объединяя функции печати.
Спасибо за чтение!Извините, если это неопределенный вопрос или вопрос Нуба ... Я новичок в переполнении стека!:)