C++ 结构体构造函数

结构体构造函数必须是与结构体名称相同的公共成员函数,并且没有返回类型。

写法和类是类似的。

struct node
{
    int label;
    node(int x):label(x){}
}
struct node
{
    int label;
    node(int x)
    {
        label = x;
    }
}

第一个对label的初始化发生在构造函数之前,即对label赋值完成后,才会执行构造函数里的语句。

第二个是赋值操作,进入构造函数后才对label赋值。

第一个操作叫做初始化列表。

《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表:

1.需要初始化的数据成员是对象的情况

  如果有一个类成员,本身是一个类或者结构,并且只有一个带参数的构造函数,没有默认构造函数,如果要对其初始化就必须调用带参数的构造函数。

2.对象是引用或者cosnt修饰的数据成员

3.子类初始化父类的私有成员

详情见:https://blog.csdn.net/liuliu0322/article/details/79812156

https://www.cnblogs.com/susharelight/p/10604711.html

默认构造函数:

1.没有带明显形参的构造函数

2.提供了默认实参的构造函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值