在类的对象的初始化中为什么需要构造函数?

/ /类需要构造函数


类是一种抽象结构,而不是一种实体,并不占用存储空间。所以在定义类结构体的时候,是不可以对类中的成员进行初始化的。
例如以下的做法就是错误的:
class student{
    name = " ";
    number = 0;
    score = 0;
}
因为类型没有内存空间的,所以没有办法存放初始化的数据。
而类的对象不同,需要容纳数据,占用空间。如果初始化一个student对象,那么stud1是占用内存空间的;
student stud1;
stud1 = {“lilei”, 2011, 98};
可以使用lilei,学号是2011,成绩是98分,来初始化stud1这个同学。这种情况成立的前提条件是name, number, score对对象来说都是可见(public)的。
类中有3种访问模式:public、private和protested。
如何是private的,即不可见的,那我们就不可以这样进行初始化,因为对于不可见的成员,不知道哪些需要进行初始化,而哪些又是不用的。
如果是同一个人用定义的类,用户也是自己,可以知道类中的全部成员,但是如果是别人给的类,我什么就根本不知道其中有多少的成员函数。
所以通过引入构造函数,来解决类的对象的初始化问题。
在类中定义构造函数,构造函数和类同名,在类定义体外也可以定义。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值