给我一段c++抽象类的代码
时间: 2024-11-20 19:36:35 浏览: 12
下面是一个简单的 C++ 抽象类的例子,假设我们有一个抽象的动物(Animal)类,它有两个抽象方法(`eat()` 和 `sound()`),代表所有的动物都会吃东西和发出声音:
```cpp
#include <iostream>
// 抽象类 Animal
class Animal {
public:
// 抽象方法 eat() 和 sound()
virtual void eat() const = 0; // 虚函数标记为纯虚函数
virtual std::string sound() const = 0;
// 具体属性示例(也可以省略)
int age;
};
// 定义派生类 Dog,继承自 Animal 并实现抽象方法
class Dog : public Animal {
public:
void eat() const override { std::cout << "Dog is eating.\n"; }
std::string sound() const override { return "Woof!"; }
};
int main() {
// 因为 Animal 是抽象类,所以无法直接创建 Animal 对象
// 但是可以创建 Dog 对象,因为 Dog 实现了所有抽象方法
Dog myDog;
myDog.eat(); // 输出 "Dog is eating."
std::cout << "Dog's sound: " << myDog.sound() << "\n"; // 输出 "Dog's sound: Woof!"
return 0;
}
```
在这个例子中,`main` 函数试图创建一个 Animal 类型的对象,但由于 Animal 是抽象类,会报错。而 Dog 类作为 Animal 的子类,通过 `override` 关键字实现了父类的抽象方法,因此可以正常创建并操作。
阅读全文