使用构造函数对结构体进行初始化/构造函数重载

构造函数:用于初始化结构体的一种函数,直接定义在结构体中。
特点:不需要写返回类型,且函数名与结构体名相同

对于普通定义的结构体,其内部会生成一个默认的构造函数(不可见):

struct studentinfo{
int id;
char gender;
//默认生成的构造函数
studentinfo(){}
};

如果想手动提供id和gender的初始化参数,则需要提供初始化参数对结构体中的变量进行赋值:

struct studentinfo{
int id;
char gender;
//下面的参数用以对结构体内部变量进行赋值
studentinfo(int _id,char _gender){
//赋值
id=_id;
gender=_gender;
}
};

★构造函数也可简化为一行:

struct studentinfo{
int id;
char gender;
studentinfo(int _id,char _gender):id(_id),gender(_gender){}
};

手动定义了构造函数就可以在需要时对结构体变量进行赋值:

studentinfo stu=studentinfo(10086,'M');

如果自己重新定义了构造函数,则不能不经初始化就定义结构体变量,默认生成的构造函数此时被覆盖了。添加studentinfo() {}后即可直接定义结构体变量。


只要参数个数和类型不完全相同,可以定义任意多个构造函数:

struct studentinfo{
int id;
char gender;
//用以不初始化就定义结构体变量
studentinfo(){}
//只初始化gender
studentinfo(char _gender){
gender=_gender;
}
//同时初始化id和gender
studentinfo(int _id,char _gender){
id=_id;
gender=_gender;
}
};

构造函数在结构体内元素较多的时候会显得代码简练且工整,推荐使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值