c++ 调用纯虚函数
在C++的面向对象编程中,纯虚函数是一种特殊的虚函数,它没有函数体,需要子类实现。如果一个类有纯虚函数,那么这个类就是抽象类,不能被实例化。在使用纯虚函数时,需要注意以下几点:
1. 纯虚函数的声明方式:在函数原型后面加上“= 0”,例如:
```
virtual void func() = 0;
```
2. 子类必须实现纯虚函数:如果一个类继承了一个抽象类,那么它必须实现抽象类中的所有纯虚函数,否则它也是个抽象类。
3. 抽象类不能被实例化:抽象类只能用作父类,不能被实例化。
下面是一个例子,演示如何在子类中实现纯虚函数的调用:
```c++
#include <iostream>
using namespace std;
class Shape {
public:
virtual void draw() = 0; // 纯虚函数
};
class Rectangle : public Shape {
public:
void draw() {
cout << 'Rectangle::draw()' << endl;
}
};
int main() {
Shape *shape = new Rectangle();
shape->draw();
delete shape;
return 0;
}
```
这个例子中,我们定义了一个抽象类 Shape 和一个子类 Rectangle,Rectangle 继承了 Shape 并实现了其中的纯虚函数 draw。在主函数中,我们通过 Shape 类型的指针指向 Rect
angle 对象并调用 draw() 函数,输出了“Rectangle::draw()”。注意,我们不能直接实例化 Shape 对象,因为它是抽象类。
多态性与虚函数 总之,在 C++ 中调用纯虚函数需要在子类中实现,否则子类也会变成抽象类。通过抽象类可以实现多态性和接口隔离等面向对象编程的重要概念。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论