对象初始化

对象的初始化     

每一个对象都应该在建立之时就有确定的内容,否则就失去了对象的意义了。定义一个对象,在系统为其分配内存时,应该同时对有关的数据成员赋初始值。首先,不能在类声明中对数据成员初始化。因为类不是实体,而是抽象类型,不占用内存而无处容纳数据。

一般初始化方法   

  • 如果类中所有数据成员为公用的,可以在定义对象时赋初值。

      如果类中数据为私有受保护的,则不能在定义对象时赋初值。

      Time t1 = { 20,20,20 };

  • 用成员函数对数据成员赋初值。但是如果定义的对象多,数据多,那么程序会变得非常臃肿。
  • 可以用一个类对象初始化另一个类对象   Time t1 = t2;

用构造函数实现数据成员的初始化

  • 构造函数是一种特殊的成员函数,不需要也不能被用户调用
  • 名字与类名同名,无返回值,无类型,故定义时不需要指定数据类型;
  • 在建立类对象时会自动调用,只需在定义对象时同时指定初值;
  • 唯一作用是对对象进行初始化,故不提倡加入无关初始化的内容;
  • 若用户没有定义构造函数,系统会自动生成,空的无参数无操作。

Time()

{   hour = 0;

    minute = 0;

    second = 0;}

带参数的构造函数

上述在定义构造函数时,在函数体内对数据赋值,则每一个对象都会得到同一组值。 若想实现对不同对象赋予不同初值,可以用带参数的构造函数。

由于用户无法调用构造函数,故实参是在定义对象时给出的。

Box(int int int);                                //构造函数原型声明

Box :: Box(int h,int w,int l){ }  //类外定义带参数的构造函数

Box box1(13,14,52);                       //定义对象同时传递实参

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值