C++ 多态
时间: 2023-07-03 21:11:49 浏览: 124
c++语言多态
C++中的多态是指在基类和派生类之间,通过虚函数实现的动态绑定机制。通过多态性,可以在基类的指针或引用上调用派生类的函数,实现动态绑定和运行时多态。
在C++中,要实现多态性,需要使用以下两个关键字:
1. virtual:在基类中声明虚函数,表示该函数可以被派生类重写。
2. override:在派生类中重写虚函数时,使用override关键字,表示该函数是对基类虚函数的覆盖。
下面是一个简单的示例:
```c++
#include <iostream>
using namespace std;
class Shape {
protected:
int width;
int height;
public:
virtual int area() {
cout << "Parent class area :" << endl;
return 0;
}
};
class Rectangle: public Shape {
public:
int area () override {
cout << "Rectangle class area :" << endl;
return (width * height);
}
};
class Triangle: public Shape {
public:
int area () override {
cout << "Triangle class area :" << endl;
return (width * height / 2);
}
};
int main() {
Shape *shape;
Rectangle rec;
Triangle tri;
// 矩形对象的地址赋值给指向基类的指针
shape = &rec;
// 调用矩形的求面积函数 area
shape->area();
// 三角形对象的地址赋值给指向基类的指针
shape = &tri;
// 调用三角形的求面积函数 area
shape->area();
return 0;
}
```
在上面的示例中,定义了一个Shape基类和两个派生类Rectangle和Triangle。在Shape类中声明了一个虚函数area(),在Rectangle和Triangle类中重写了该函数。在main函数中,分别创建了Rectangle和Triangle对象,并将它们的地址赋值给基类Shape的指针shape。通过shape指针调用area()函数时,会根据对象的实际类型,动态地调用相应的派生类函数,实现了多态性和动态绑定机制。
总的来说,C++中的多态性是一种重要的面向对象特性,可以提高程序的可扩展性和可维护性,应用广泛。在实际的开发中,多态性通常与其他面向对象的技术和设计模式相结合,从而实现更加复杂的功能和需求。
阅读全文