struct A {
int a;
virtual void print() {}
};
struct B : A {
int b;
virtual void print() {}
};
int main(void)
{
A *a = new B;
a[0].print(); // g++, vs2010, clang call B::print.
}
Все три g ++, vs2010, лязг вызова B :: print.Почти сомневаюсь в моем C ++ 101. У меня сложилось впечатление, что использование точки с объектом не приводит к динамической диспетчеризации.Только -> с указателем и точкой со ссылкой приведет к динамической диспетчеризации.
Итак, мой вопрос, переносим ли этот код?