纯虚类怎么做函数参数
时间: 2023-11-20 10:54:01 浏览: 27
纯虚类可以作为函数参数,但需要注意以下几点:
1. 由于纯虚类无法实例化,因此函数参数必须是指向纯虚类的指针或引用。
2. 如果函数中需要调用纯虚函数,则必须保证传入的指针或引用指向的对象是派生类的实例,否则会导致编译错误。
3. 如果函数中不需要调用纯虚函数,则可以传入指向纯虚类的指针或引用,因为纯虚类本身并不包含任何数据成员或函数实现。
下面是一个例子,演示了如何将纯虚类作为函数参数:
```c++
#include <iostream>
using namespace std;
class Shape { // 抽象类
public:
virtual void draw() = 0; // 纯虚函数
};
class Circle : public Shape {
public:
void draw() {
cout << "Drawing a circle." << endl;
}
};
class Rectangle : public Shape {
public:
void draw() {
cout << "Drawing a rectangle." << endl;
}
};
void drawShape(Shape* shape) { // 函数参数为指向纯虚类的指针
shape->draw();
}
int main() {
Circle circle;
Rectangle rectangle;
drawShape(&circle); // 传入派生类的实例
drawShape(&rectangle);
return 0;
}
```