1. 程式人生 > >8.4 圓柱類設計-類組合

8.4 圓柱類設計-類組合

要求在Circle類基礎上採用類組合的思想,設計一個圓柱類,包括相關資料成員和成員函式,輸出它們的面積和體積。

仍然是類組合的練習,通過這個題你會發現到類組合比較優勢的一點, 那就是提供類中的任何public型成員函式 在需求類中都可以隨意呼叫,方便的1皮,用起來簡直舒服

前置程式碼::

#include <iostream> 
using namespace std; 
class Circle//圓類 
{ 
private: 
         double  r; 
public: 
    Circle(double a=0.0)
	{ r = a; }     
	double getArea()//返回圓面積
	{ 
	    return 3.1415926 * r * r;        
    }
    double getPerimeter()//返回圓周長
    {	 
	    return 2*3.1415926 * r;        
    }
};

後置程式碼::

int main() 
{ 
    Column column(12,10);    
	cout<<"圓柱的面積:"<<column.getCubarea()<< endl; 
    cout<<"圓柱的體積:"<<column.getCubage()<< endl; 
	return 0;
}

期待的輸出::

圓柱的面積:1658.76↵
圓柱的體積:4523.89↵

柱類( Column)的設計

class Column
{
	private:
		Circle a;
		double h;
	public:
		Column(int a,int b) :a(a)
		{
			h=b;
		}
		double getCubarea()
		{
			return a.getArea()*2+a.getPerimeter()*h;
		}
		double getCubage()
		{
			return a.getArea()*h;
		}
};