У меня есть базовый класс (виртуальный) с некоторыми детьми и массив с указателями на базовые классы.Когда я создаю новый объект и затем добавляю его адрес в массив, это нормально.Но когда вместо добавления адреса я использую new class (), вызывается функция PARENT, а не CHILD.Пример кода:
class base
{
public:
virtual int foo() {return 1;};
};
class child : public base
{
int foo() {return 2;};
};
//somewhere in code...
vector<base*> arr;
//1. Its ok:
child one;
arr.push_back(&one);
cout<<arr[0].foo(); //Its 2
//2. Its not ok...
arr.push_back(new child())
cout<<arr[1].foo(); //Its 1...
Спасибо за помощь ...
РЕДАКТИРОВАТЬ:
Извините, ошибка компилятора - Скачал MinGW и работает нормально ... Извинитедля проблемы ...