c++ 虚函数的所用
时间: 2023-08-28 19:09:52 浏览: 116
C++中虚函数是为了实现多态性而设计的。在面向对象编程中,多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。通过虚函数,可以在基类中定义一个函数,在派生类中重写该函数,从而实现不同的执行结果。这种机制被称为动态绑定或运行时多态性。
使用虚函数的步骤如下:
1. 在基类中声明虚函数,即在函数前加上virtual关键字。
2. 在派生类中重新定义该虚函数,并且函数名、参数列表和返回值类型都必须与基类中声明的虚函数相同。
3. 通过基类的指针或引用调用虚函数时,实际执行的是派生类中的版本。
示例代码如下:
```cpp
class Shape {
public:
virtual void draw() {
cout << "Drawing a shape" << endl;
}
};
class Circle : public Shape {
public:
void draw() {
cout << "Drawing a circle" << endl;
}
};
class Square : public Shape {
public:
void draw() {
cout << "Drawing a square" << endl;
}
};
int main() {
Shape *s1 = new Circle();
Shape *s2 = new Square();
s1->draw(); // 实际执行的是Circle类中的draw函数
s2->draw(); // 实际执行的是Square类中的draw函数
return 0;
}
```
在上述示例中,Shape类中的draw函数是虚函数,在Circle和Square类中都被重新定义。在main函数中,通过基类指针调用draw函数,实际执行的是派生类中的版本,从而实现了多态性。
阅读全文