能否提供一个C++代码示例及其详细解释?
时间: 2024-10-24 18:04:10 浏览: 26
当然可以。这里有一个简单的C++代码示例,它展示了多态的基本概念——通过虚函数实现的基类指针调用子类的方法:
```cpp
#include <iostream>
// 定义一个基类 Animal
class Animal {
public:
virtual void sound() { std::cout << "Animal makes a generic sound.\n"; }
};
// 子类 Dog 继承自 Animal 并重写sound方法
class Dog : public Animal {
public:
void sound() override { std::cout << "Dog barks.\n"; }
};
// 子类 Cat 同样继承自 Animal,并重写sound方法
class Cat : public Animal {
public:
void sound() override { std::cout << "Cat meows.\n"; }
};
int main() {
// 创建一个 Animal 类型的指针并指向 Dog 对象
Animal* animalPtr = new Dog();
// 使用这个基类指针调用sound方法,实际运行的是子类的实现
animalPtr->sound(); // 输出: Dog barks.
// 将animalPtr指向另一个子类 Cat
animalPtr = new Cat();
// 再次调用sound方法,这次会输出Cat的叫声
animalPtr->sound(); // 输出: Cat meows.
delete animalPtr; // 别忘了释放内存
return 0;
}
```
在这个例子中,`sound()`方法是虚函数,使得我们可以通过基类指针动态地调用到子类的实现。这就是多态的一种体现。
阅读全文