gpt4 book ai didi

c++ - c++ oop指针与继承的关系

转载 作者:行者123 更新时间:2023-11-28 04:31:39 25 4
gpt4 key购买 nike

谁能写一段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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com