C++面向对象示例:抽象基类与三维图形表面积体积计算

需积分: 7 0 下载量 123 浏览量 更新于2024-09-08 收藏 1KB TXT 举报
本资源是一份C++面向对象编程示例,主要介绍了如何使用抽象基类和派生类来创建一个可复用的几何形状容器。核心知识点围绕以下几个部分展开: 1. 抽象基类Container: 定义了一个抽象基类Container,它包含一个私有数据成员`double r`,表示几何体的半径或直径。该类具有两个纯虚函数`virtual double area() = 0`和`virtual double volume() = 0`,用于计算表面积和体积。这两个函数在基类中被声明为虚函数,使得派生类可以重写这些方法,提供各自特有的实现。 2. 派生类: - Sphere (球体):继承自Container,初始化时接受半径参数。它实现了area()和volume()方法,分别计算球体的表面积(4πr²)和体积(4/3πr³)。print()函数调用这些方法并输出结果。 - Cylinder (圆柱体):继承自Container,并添加了一个额外的私有数据成员`double h`,表示圆柱体的高度。它同样提供了area()和volume()的实现,分别计算表面积(2πrh + 2πr²)和体积(πr²h)。同时,还定义了geth()方法获取圆柱体的高度。 - Cube (正方体):继承自Container,仅需提供一个参数表示边长,area()和volume()方法分别计算正方体的表面积(6r²)和体积(r³)。 3. 函数print(): 这个辅助函数接受一个Container类型的引用作为参数,打印出其半径、表面积和体积。在main()函数中,分别创建了Sphere、Cylinder和Cube的对象,并调用print()函数展示它们的特性。 4. main()函数: 在主程序中,实例化了Sphere对象S(2)、Cylinder对象Cy(3,4)和Cube对象Cu(5),然后分别调用print()函数展示每个几何体的相关属性。 通过这个例子,学习者可以理解C++中面向对象编程的核心概念,包括抽象基类的使用、派生类的定义以及虚函数的重写。同时,这也展示了如何根据对象的具体类型动态地调用不同的方法,体现了多态性这一面向对象的重要特性。