У меня под рукой следующая проблема.Существует класс Foo
и еще один класс Bar
, который является членом класса Foo
.
class Bar{
private:
some stuff;
public:
Bar();
some other_stuff;
};
class Foo{
private:
Bar bar;
public:
Foo(); // Initialize the bar object here in the constructor
void doSomethingWithBar();
};
Теперь оба класса огромны!Для некоторых приложений мне нужно внести изменения как в Foo
, так и в Bar
, поэтому существуют классы Foo_Derived
и Bar_Derived
.
class Bar_Derived: public Bar{
private:
some NEW_stuff;
public:
Bar_Derived();
some New_other_stuff;
};
class Foo_Derived: public Foo{
private:
Bar_Derived bar;
public:
Foo_Derived();
void doSomethingWithBar();
};
Насколько я понимаю наследование, после вызова Foo_Derived()
также вызывается конструктор базового класса для Foo, который инициализирует объект bar в базовом классе (типа Bar
.Я делаю так, что вместо этого используется объект bar в производном классе? (Типа Bar_Derived
). Мне нужен только базовый класс (Foo
), чтобы инициализировать базовую часть объекта bar и делать все остальное в Foo_Derived
сам по себе. Это вообще возможно?
Извините, если вопрос не ясен. Я просто очень запутался!