为什么抽象类无法创建对象
时间: 2023-07-20 12:22:22 浏览: 174
Kotlin 创建接口或者抽象类的匿名对象实例
抽象类是一种特殊的类,它的主要作用是为其他类提供一个接口,而不是用于创建对象。抽象类中包含了至少一个纯虚函数,这些函数没有具体的实现,而是由派生类来实现。
因为抽象类中包含了纯虚函数,所以它不能被实例化,也就是说无法创建抽象类的对象。如果尝试创建抽象类的对象,编译器就会报错。
例如下面的代码:
```c++
class Shape {
public:
virtual void draw() = 0; // 纯虚函数
};
int main() {
Shape s; // 报错:无法创建抽象类的对象
return 0;
}
```
在上面的例子中,`Shape` 是一个抽象类,它包含了一个纯虚函数 `draw()`,因此无法被实例化,编译器会报错。
抽象类的主要作用是为其他类提供一个接口,派生类可以继承抽象类并实现其中的纯虚函数,从而实现具体的功能。例如:
```c++
class Circle : public Shape {
public:
virtual void draw() {
// 绘制圆形
}
};
class Rectangle : public Shape {
public:
virtual void draw() {
// 绘制矩形
}
};
```
在上面的例子中,`Circle` 和 `Rectangle` 都是 `Shape` 的派生类,它们实现了 `draw()` 函数以绘制不同的图形。
阅读全文