C++ struct 初始化的问题

struct student

{

    int age;

    string name;

    int id;

};

初始化:

student st1={10, "li ming", 01};

修改某个成员变量的值:st1.id = 11;

下面谈我遇到的问题:id的接口准备好了,然而不知道name的值,也就是只需要把age和id进行设置就可以了

已经存在的代码 const student st1 = {l_age};

我需要将id计算出来并且添加进去,const student st1 = {l_age, l_id};//这是不对的,顺序初始化,没有对name进行初始化。顺序的缺陷是必须按成员定义的顺序逐个初始化,不能间隔。

转到乱序初始化:

student st1={ .age = 10,

                      .name = "li ming",

                      .id = 01};//C风格

或者

student st1={ age : 10,

                      name : "li ming",

                      id : 01};//C++ 风格

但是gcc不支持后缀名为cpp的文件使用这种方式!!!!

 

项目中是CPP后缀的文件,使用这种方式后编译提示sorry, unimplemented: non-trivial designated initializers not supported。
最后解决办法:

student st1 = {l_age};

st1.id = l_id;

虽然很ugly,只能等后面做name计算的团队去重构了,呵呵。

 

转载于:https://www.cnblogs.com/hipposinsilt/p/6588608.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值