注册 登录
编程论坛 C++教室

基础问题,你肯定会!但是我却不明白。。。

vvvevvv 发布于 2015-03-17 09:51, 653 次点击
程序代码:
#include <iostream>
using namespace std;
class Box
{
   public :
   Box(int,int,int);
   int volume( );
   private :
   int height;
   int width;
   int length;
};
//声明带参数的构造函数//声明计算体积的函数
Box::Box(int h,int w,int len) //在类外定义带参数的构造函数
这里的h、w、len有什么用,不太明白。对构造函数不太懂。已经有了height、width、length 为什么还要定义h、w、len呢
{
   height=h;
   width=w;
   length=len;
}
int Box::volume( ) //定义计算体积的函数
{
   return (height*width*length);这里为什么不是h、w、len呢,如果行14-19删去可不可以。
}
int main( )
{
   Box box1(12,25,30); //建立对象box1,并指定box1长、宽、高的值
   cout<<"The volume of box1 is "<<box1.volume( )<<endl;
   Box box2(15,30,21); //建立对象box2,并指定box2长、宽、高的值
   cout<<"The volume of box2 is "<<box2.volume( )<<endl;
   return 0;
}


[ 本帖最后由 vvvevvv 于 2015-3-17 09:53 编辑 ]
5 回复
#2
wp2319572015-03-17 09:53
len有什么用,不太明白。对构造函数不太懂。已经有了height、width、length 为什么还要定义h、w、len呢


===========================================

就是传参,把用户数据传到私有变量里  否则如何办???
#3
vvvevvv2015-03-17 09:55
回复 2楼 wp231957
height=h;
   width=w;
   length=len;


这就是传参么,不好意思 我是新手。
#4
wp2319572015-03-17 09:56
return (height*width*length);这里为什么不是h、w、len呢

============================

这里就是类的奇妙之处,类初始化完毕后,私有变量就拥有自己的数值,可以参与各种计算,而那个神马h w  len 啥的 都是起到一个中间变量的作用

它随着函数的返回 也就没有意义了
#5
ADust、2015-03-17 09:57
//声明带参数的构造函数//声明计算体积的函数
Box::Box(int h,int w,int len) //在类外定义带参数的构造函数
这里的h、w、len有什么用,不太明白。对构造函数不太懂。已经有了height、width、length 为什么还要定义h、w、len呢
{
   height=h;
   width=w;
   length=len;
}

这里定义的height,width,length只是BOX的属性,并没有给它定义值。
当你声明一个BOX的时候,可以通过Box::Box(int h,int w,int len) //在类外定义带参数的构造函数,这里面的值给传入构造参数。
在构造参数中给BOX的属性赋值
#6
vvvevvv2015-03-17 10:01
似乎明白点了  谢谢了!
1