Добрый!
Вопрос нуба.
![](/Forum/Images/frown.gif)
В проге решил из структуры сделать объекты, что бы всё было как у взрослых дядек. Но ничего не получилось. Вот упрощенный вариант:
class A
{
public:
virtual void VFunc() = 0;
};
class B: public A
{
public:
void VFunc()
{
printf("class B\n");
}
};
class C: public A
{
public:
void VFunc()
{
printf("class C\n");
}
};
// здесь можно что-то упростить?
B b = B();
C c = C();
static A *a[] = {&b, &c, 0 /*маркер конца списка*/};
static A *aa[] = {&B(), &C(), 0 /*маркер конца списка*/};
static A aaa[] = {B(), C()};
int _tmain(int argc, _TCHAR* argv[])
{
// пока работает
a[0]->VFunc();
a[1]->VFunc();
// коварно вылетает
aa[0]->VFunc();
aa[1]->VFunc();
// даже не линкуется
// в реальной проге линкуется, но идет вызов pure virtual
aaa[0].VFunc();
aaa[1].VFunc();
return 0;
}
Как сделать правильно?