【发布时间】:2010-11-27 13:33:32
【问题描述】:
我有一个 A 类:
class A
{
public:
virtual double getValue() = 0;
}
还有一个B类:
class B : public A
{
public:
virtual double getValue() { return 0.0; }
}
然后在 main() 我做:
A * var;
var = new B[100];
std::cout << var[0].getValue(); //This works fine
std::cout << var[1].getValue(); //This, or any other index besides 0, causes the program to quit
如果我这样做:
B * var;
var = new B[100];
std::cout << var[0].getValue(); //This works fine
std::cout << var[1].getValue(); //Everything else works fine too
一切都编译得很好,但似乎我的多态性可能有问题?我很困惑。
【问题讨论】:
标签: c++ arrays polymorphism pointers