在C++中,抽象类是不能直接实例化的。要调用抽象类中的成员函数,您需要创建一个从抽象类派生的子类,并在子类中实现抽象类中的纯虚函数。然后,您可以创建子类的对象并调用其成员函数。以下是一个简单的示例:
#include <iostream>
// 抽象类 Shape
class Shape {
public:
// 虚析构函数,以便在删除基类指针时正确调用派生类的析构函数
virtual ~Shape() {}
// 纯虚函数,计算面积
virtual double area() const = 0;
};
// 从 Shape 类派生的 Circle 类
class Circle : public Shape {
public:
// 构造函数,接受半径作为参数
Circle(double radius) : radius_(radius) {}
// 实现抽象类中的纯虚函数 area
double area() const override {
return 3.14159 * radius_ * radius_;
}
private:
double radius_;
};
int main() {
// 由于抽象类不能直接实例化,我们需要创建一个子类对象
Circle circle(5.0);
// 调用子类中的成员函数 area
std::cout << "The area of the circle is: " << circle.area() << std::endl;
return 0;
}
在这个例子中,我们定义了一个抽象类Shape
,其中包含一个纯虚函数area()
。然后,我们创建了一个从Shape
类派生的Circle
类,并实现了area()
函数。在main()
函数中,我们创建了Circle
类的对象,并调用了其area()
成员函数。