鉴于以下类别:
class animal {
public:
virtual void noise() { };
};
class cat: public animal{
public:
void noise() {
cout << "mew" << endl;
}
};
为什么这样做(打印正确的噪音):
animal *animals[2];
animals[0] = new dog;
animals[0]->noise();
但这并不是:
animal animals[2];
dog dog1;
animals[0] = dog1;
animals[0].noise();
有没有办法让它在不使用指针的情况下工作? 该软件希望我添加更多文本,但我想我已经非常清楚地提出了我的问题所以这只是随机文本......