加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C初始化匿名结构

发布时间:2020-12-16 04:59:23 所属栏目:百科 来源:网络整理
导读:我还在赚我的C翼;我的问题是如果我有一个这样的结构: struct Height{ int feet; int inches;}; 然后我有一些这样的行: Height h = {5,7};Person p("John Doe",42,"Blonde","Blue",h); 我喜欢通过花括号的结构体的初始化,但我更喜欢上面的一行,在一个匿名的
我还在赚我的C翼;我的问题是如果我有一个这样的结构:
struct Height
{
    int feet;
    int inches;
};

然后我有一些这样的行:

Height h = {5,7};
Person p("John Doe",42,"Blonde","Blue",h);

我喜欢通过花括号的结构体的初始化,但我更喜欢上面的一行,在一个匿名的高度结构.我该如何做?我最初的天真做法是:

Person p("John Doe",Height{5,7});

这不行.我离我很远吗?

解决方法

你不能,至少不在今天C;括号初始化是初始化程序语法的一部分,不能在别处使用.

您可以向Height添加构造函数:

struct Height
{
    Height(int f,int i) : feet(f),inches(i) { }
    int feet,inches;
};

这允许您使用:

Person p("John Doe",Height(5,7));

不幸的是,由于Height不再是聚合,所以您不能再使用括号初始化.构造函数调用初始化同样简单:

Height h(5,7);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读