История изменений
Исправление alysnix, (текущая версия) :
клован, однократное наследование в с++ это просто композиция, где обьект базового класса, лежит первым в наследующем обьекте, и язык обяьвляет формальную совместимость класса наследника с классом этого первого поля. именно в этом обьявлении и прелесть наследования, иначе можно было б и без него обойтись, заменив композицией.
таким образом безбашенно критикуя «наследование», вы критикуете просто композицию.
неважно как вы используете функцию f(…) из класса A
вот так, через наследование:
class B: A {
void ff() {
A::f();
}
}
или через композицию
class B {
A _a;
void ff() {
_a.f();
}
}
потому, если вы там со своим кагалом нашли какие-то пороки в наследовании, то вы нашли и пороки в композиции, а это уже совсем ж. поскольку без композиции вы вообще как без штанов.
просто удивительно как люди блуждают в одной сосне.
Исходная версия alysnix, :
клован, однократное наследование в с++ это просто композиция, где обьект базового класса, лежит первым в наследующем обьекте, и язык обяьвляет формальную совместимость класса наследника с этим первым полем.
таким образом безбашенно критикуя «наследование», вы критикуете просто композицию.
неважно как вы используете функцию f(…) из класса A
вот так, через наследование:
class B: A {
void ff() {
A::f();
}
}
или через композицию
class B {
A _a;
void ff() {
_a.f();
}
}
потому, если вы там со своим кагалом нашли какие-то пороки в наследовании, то вы нашли и пороки в композиции, а это уже совсем ж. поскольку без композиции вы вообще как без штанов.
просто удивительно как люди блуждают в одной сосне.