Некорректное наследование, когда дочерние классы должны включать друг друга в C++
Скажем, у меня есть класс A. Класс B и класс C являются дочерними классами A. Будет ли неправильная структура наследования, если класс C должен включать B?
изменить: пример
Скажем, у меня есть родительский класс Trip с двумя атрибутами: start и end. Мой первый унаследованный класс (B) от A называется SimpleTrip, у него есть добавленный атрибут, называемый транспортом (итого: начало, конец и транспорт). Мой второй унаследованный класс (C) от A называется CompoundTrip, у него есть два добавленных атрибута: массив SimpleTrips и количество поездок (итого всего: начало, конец, массив SimpleTrips, количество поездок). Составное путешествие - это "группа" простых поездок, но все же это путешествие.
1 ответ
Взгляните на это и попробуйте ответить "Что печатает ca()", не запуская программу, а затем попробуйте запустить ее.
#include <iostream>
struct A {
virtual void a() {
std::cout << "a" << std::endl;
}
};
struct B : A {
virtual void a() override {
std::cout << "b" << std::endl;
};
};
struct C : A, B {
};
int main() {
C c;
c.a();
}