LINUX.ORG.RU

История изменений

Исправление 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();
  }
}

потому, если вы там со своим кагалом нашли какие-то пороки в наследовании, то вы нашли и пороки в композиции, а это уже совсем ж. поскольку без композиции вы вообще как без штанов.

просто удивительно как люди блуждают в одной сосне.