LINUX.ORG.RU

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

Исправление Kroz, (текущая версия) :

Причем этот оверхед только на класс, а не на каждый объект.

Как ты себе это представляешь?
Какая функция вызовется в примере ниже: первая или вторая?

class Parent{
public:
  virtual void fn() { /* Функция 1 */ };
};

class Child: public Parent{
public:
  virtual void fn() { /* Функция 2 */ };
};

Parent *a;
Child  *b = new Child();

a = b;
a->fn();

Исходная версия Kroz, :

Причем этот оверхед только на класс, а не на каждый объект.

Как ты себе это представляешь?
Какая функция вызовется в примере ниже: первая или вторая?

[br]class Parent{[br]public:[br]  virtual void fn() { /* Функция 1 */ };[br]}[br]class Child: public Parent{[br]public:[br]  virtual void fn() { /* Функция 2 */ };[br]}[br][br]Parent *a;[br]Child  *b = new child();[br][br]a = b;[br]a->fn();[br]