Problem allocating derived class array with new
问题 I have a simple program $ cat a.cpp #include <iostream> class MyClass { public: virtual void check() { std::cout << "Inside MyClass\n"; } }; class MyClass2: public MyClass { public: int* a; virtual void check() { std::cout << "Inside MyClass2\n"; } }; int main() { MyClass *w, *v; w = new MyClass2[2]; v = new MyClass2; std::cout << "Calling w[0].check\n"; w[0].check(); std::cout << "Calling v->check\n"; v->check(); std::cout << "Calling w[1].check\n"; w[1].check(); } $ g++ a.cpp $ ./a.out