gpt4 book ai didi

c++11 initializer_list 不适用于嵌入对象的文字常量值?

转载 作者:行者123 更新时间:2023-11-30 02:16:42 24 4
gpt4 key购买 nike

我有一个用 C++11 编写的简单程序:

struct A{
int i;
struct B{
int i;
int j;
};
} a = {2, {3, 4}};

g++-7 编译报错:

error: too many initializers for 'A'
}a={2,{3,4}};
^

我只是想知道如何使用文字常量声明 A 的对象,如何修复它?

非常感谢。

最佳答案

因为你的类型 A 只包含一个数据成员(int 类型),你的初始化器中最多可以有一个元素:

struct A{
int i;
struct B{
int i;
int j;
};
} a = {2}; // OK, a.i == 2

(A 还包含类型成员 (A::B) 的事实对于创建 A 类型的对象并不重要.)

关于c++11 initializer_list 不适用于嵌入对象的文字常量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54545252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com