У меня есть следующая проблема. Существует класс, 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_Derived
). Мне нужен только базовый класс (Foo
), чтобы инициализировать базовую часть объекта штриховки и сделать остальное в классе Foo_Derived
. Возможно ли это?
Извините, если вопрос непонятен. Я просто смутил себя!
Невозможно наследовать часть класса. –