谁能表达一个简短的c ++代码,该代码应显示指针与继承之间的关系。
我相信以下代码是我的问题
class Animal {
public:
virtual void MakeSound(const char* pNoise) { ... }
virtual void MakeSound() { ... }
};
class Dog : public Animal {
public:
virtual void MakeSound() {... }
};
int main() {
Animal* a = new Dog();
Dog* d = new Dog();
a->MakeSound("bark");
d->MakeSound("bark"); // Does not compile
return 0;
}
最佳答案
您将基类MakeSound
隐藏在其他MakeSound
的覆盖下,因此它不参与重载解析。要么在Dog
中要么都覆盖,要么都不覆盖,或者将其中之一重命名为MakeNoise
。
关于c++ - 指针与继承C++ oop之间的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52748572/