📅  最后修改于: 2023-12-03 15:13:45.288000             🧑  作者: Mango
在 C++ 编程中,继承是一种重要的概念,它允许一个类从另一个类派生出来,从而获得父类的属性和方法。问题7涉及继承的一些高级用法,例如虚函数和多态性。
假设我们有两个类: Animal
和 Dog
。Animal
类是一个基类,它具有一些通用的属性和方法,例如 name
和 sound
。Dog
类从 Animal
类派生,继承了它的属性和方法,并且还可以定义自己的属性和方法。
问题7要求我们实现一个虚函数的例子,并且使用多态性来模拟不同类型的动物作出不同的声音。
首先,我们需要定义一个基类 Animal
,其中包含虚函数 makeSound()
:
class Animal {
protected:
std::string name;
std::string sound;
public:
// 构造函数
Animal(std::string name, std::string sound) : name(name), sound(sound) {}
// 虚函数
virtual void makeSound() {
std::cout << "The " << name << " makes a sound: " << sound << std::endl;
}
};
然后,我们派生一个类 Dog
来实现我们自己的方法和属性,同时重写虚函数 makeSound()
:
class Dog : public Animal {
private:
std::string breed;
public:
// 构造函数
Dog(std::string name, std::string sound, std::string breed)
: Animal(name, sound), breed(breed) {}
// 重写虚函数
void makeSound() override {
std::cout << "The " << breed << " dog named " << name << " barks: " << sound << std::endl;
}
};
最后,我们创建一个 main
函数来测试我们的代码:
int main() {
Animal* animal = new Animal("Animal", "generic sound");
Animal* dog = new Dog("Fido", "woof woof", "Bulldog");
animal->makeSound();
dog->makeSound();
delete animal;
delete dog;
return 0;
}
该程序的运行结果应该会输出以下内容:
The Animal makes a sound: generic sound
The Bulldog dog named Fido barks: woof woof
通过使用虚函数和多态性,我们可以根据对象的类型执行不同的方法。这使得我们的代码更加灵活和可扩展。
以上就是关于 C++ 继承中虚函数和多态性的问题7的介绍。希望对程序员们有所帮助和启发!