第1关:设计和使用虚函数
时间: 2024-05-10 07:16:50 浏览: 125
虚函数的使用
在 C++ 中,虚函数是一种非常重要的概念,它允许子类重写父类的函数,并且在运行时调用正确的函数。
设计虚函数的一般步骤如下:
1. 在基类中定义虚函数,使用关键字 virtual。
2. 在派生类中重写虚函数,如果不需要重写,则直接继承即可。
3. 在使用时,使用基类指针或引用指向派生类对象,从而调用正确的函数。
下面是一个简单的例子,演示如何使用虚函数:
```c++
#include <iostream>
class Shape {
public:
virtual void draw() {
std::cout << "Drawing a shape..." << std::endl;
}
};
class Circle : public Shape {
public:
void draw() override {
std::cout << "Drawing a circle..." << std::endl;
}
};
class Square : public Shape {
public:
void draw() override {
std::cout << "Drawing a square..." << std::endl;
}
};
int main() {
Shape* shape1 = new Circle();
Shape* shape2 = new Square();
shape1->draw(); // 输出 "Drawing a circle..."
shape2->draw(); // 输出 "Drawing a square..."
delete shape1;
delete shape2;
return 0;
}
```
在这个例子中,我们定义了一个基类 Shape 和两个派生类 Circle 和 Square。在基类 Shape 中定义了一个虚函数 draw,然后在派生类 Circle 和 Square 中重写了这个函数。在主函数中,我们使用基类指针指向派生类对象,然后调用了这个虚函数,从而实现了多态性。
值得注意的是,如果不使用虚函数,那么在使用基类指针或引用指向派生类对象时,将会调用基类中的函数,而不是派生类中的函数。这将导致程序无法实现多态性,而虚函数则解决了这个问题。
阅读全文