在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()
成員函數。