源程序:
/* (程序頭部註釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙臺大學計算機學院學生
* All rights reserved.
* 文件名稱: 構造函數編寫長方體類
* 作 者: 114-3 張宗佳
* 完成日期: 2012 年 3 月 21 日
* 版 本 號: vc.3
* 對任務及求解方法的描述部分
* 輸入描述:前4個長方柱(即數組的前4個元素)要在定義數組時初始化,其中前3個直接給出參數初始化,
第4個用默認構造函數初始化;第5個長方柱定義時不初始化,而是由鍵盤輸入長、寬、高賦值;
* 問題描述:需要定義長方柱類,5個長方柱採用一個對象數組表示;
* 程序輸出:輸出這5個長方柱的體積和表面積;
* 程序頭部的註釋結束
*/
#include<iostream>
using namespace std;
class Box
{
public:
Box():length(1.0),width(1.0),heigth(1.0){};//默認的構造函數
Box(double len, double wid, double hei):length(len),width(wid),heigth(hei){};//帶參數的構造函數
void set_box();
double valume();
double area();
private:
double length;
double width;
double heigth;
};
int main()
{
Box b[5] =
{
Box(3.5,4.5,5.5),
Box(4.5,3.6,8.9),
Box(8.9,7.8,5.5)
};//將前三個長方體初始化
b[4].set_box();
for(int i = 1; i < 6; ++i)
{
cout << "第" << i << "個長方體的體積是:" << b[i - 1].valume() << endl;
cout << "第" << i << "個長方體的表面積是:" << b[i - 1].area() << endl;
}//不用設置第四個長方體,在輸出的時候就以默認1.0 輸出了
return 0;
}
void Box::set_box()
{
cout << "請輸入長方體的長、寬、高:" ;
cin >> length;
cin >> width;
cin >> heigth;
return ;
}
double Box::valume()
{
double t;
t = length * width * heigth;
return t;
}
double Box::area()
{
double s;
s = 2 * (length * width + length * heigth + width * heigth);
return s;
}
實驗結果:
經驗積累:
1.定義對象數組後,在初始化時所給的參數不能多於數組內的元素個數
2.可以講成員函數設置成double型,給一個返回值,返回體積和表面積,在輸出時直接調用就可以了
上機感言:
在聲明類的時候,要把數據成員設爲私有的,把成員函數設爲公有的,而在剛開始編寫時,竟然弄反了,在編譯時出錯....糊塗了...