21xrx.com
2024-12-22 20:44:52 Sunday
登录
文章检索 我的文章 写文章
C++纯虚函数实例
2023-07-07 03:16:04 深夜i     --     --
C++ 纯虚函数 实例

C++中,纯虚函数是一种特殊的虚函数,其声明形式为virtual void func() = 0;。纯虚函数本身并没有实现,而是由派生类去实现。因此,纯虚函数主要用于实现抽象类和接口类的设计。

下面是一个实例,演示了如何使用纯虚函数实现抽象类。假设我们要设计一个形状类(Shape),该类有两个派生类:圆形类(Circle)和正方形类(Square)。我们需要在形状类中声明一个纯虚函数来计算形状的面积,而具体的面积计算方法由每个派生类中实现。

首先,我们在Shape类中声明一个纯虚函数:

class Shape {

public:

 virtual double area() const = 0;

};

这里的函数area()就是我们要实现的纯虚函数。注意到该函数的实现没有给出,即该函数没有实际意义,只起到函数签名的作用。

接着,我们在Circle类和Square类中实现该函数:

class Circle : public Shape {

public:

 Circle(double r) : radius(r) {}

 virtual double area() const { return 3.14 * radius * radius; }

private:

 double radius;

};

class Square : public Shape {

public:

 Square(double s) : side(s) {}

 virtual double area() const { return side * side; }

private:

 double side;

};

这里我们定义了两个派生类Circle和Square,并在每个类中分别实现了纯虚函数area()。由于Shape类中纯虚函数的存在,Circle和Square都必须实现area()函数,否则将不能实例化这两个类。

通过以上实现,我们已经成功地设计了一个抽象类Shape和两个派生类Circle和Square。此时,我们可以在主函数中进行测试:

int main() {

 Circle c(2.0);

 Square s(4.0);

 cout << "Area of circle: " << c.area() << endl;

 cout << "Area of square: " << s.area() << endl;

 return 0;

}

最终的输出结果将分别是“Area of circle: 12.56”和“Area of square: 16”。

总之,C++中的纯虚函数是一种非常有用的特性,通过纯虚函数的实现,我们可以实现抽象类、接口类等设计模式,进而提高代码的可重用性和可维护性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复