c++如何实现类接口与多态
时间: 2023-12-30 20:05:54 浏览: 84
在C++中,类接口通常使用抽象类和纯虚函数来实现。抽象类是一种不能直接实例化的类,只能作为基类来派生出其他具体的子类。抽象类中的纯虚函数没有具体的实现,只有函数声明,它们必须在派生类中进行实现。这样,抽象类就定义了一组公共的接口,可以被具体的子类所继承和实现。
以下是一个简单的抽象类的例子:
```
class Shape {
public:
virtual double area() const = 0;
virtual void draw() const = 0;
};
```
这里定义了一个Shape抽象类,包括两个纯虚函数area和draw。这个类不能被直接实例化,只能被用来派生出具体的形状类,比如Rectangle和Circle。这些具体的形状类必须实现Shape类中的纯虚函数,才能被实例化。
多态是C++中的一个重要特性,它允许在运行时根据对象的实际类型来调用相应的方法。在C++中,多态通常通过虚函数和指针或引用来实现。
以下是一个简单的多态的例子:
```
void printArea(const Shape& shape) {
cout << "Area: " << shape.area() << endl;
}
int main() {
Rectangle rect(3, 4);
Circle circle(5);
printArea(rect);
printArea(circle);
return 0;
}
```
这里定义了一个printArea函数,它接受一个Shape类型的引用作为参数。在main函数中,创建了一个Rectangle对象和一个Circle对象,并分别传递给printArea函数。由于Shape类中的area函数是虚函数,所以在运行时会根据对象的实际类型来调用相应的area函数,从而实现多态。
阅读全文