源程序:
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* 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型,给一个返回值,返回体积和表面积,在输出时直接调用就可以了
上机感言:
在声明类的时候,要把数据成员设为私有的,把成员函数设为公有的,而在刚开始编写时,竟然弄反了,在编译时出错....糊涂了...