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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |