直接使用初始化器列表只能使用一个数组作为成员初始初始化一个构造是合法的吗?
Is it legal to initialize a struct with only one array as member using a initializer list directly?
#include <iostream>
class vec
{
public:
int arr[2];
};
int main()
{
vec a = { { 1,2 } };// works
vec b = { 1,2 };// works too ,but why ?
std::cin.get();
}
vec除默认构造函数外没有构造函数。
但是这件代码编译,我想知道为什么。
http://ideone.com/uyx98o
汇总初始化是惊人的,您甚至不必使嵌套使其正常工作,您也可以提供比成员更少的值:
#include <iostream>
#include <string>
struct A {
struct { int a; std::string b[3]; } a;
double b, c;
};
int main() {
A a = { 10, "a", "b", "c", 3.1415 };
std::cout << a.a.a << " " << a.a.b[0] << " " << a.a.b[2]
<< " " << a.b << " " << a.c;
}
live
相关文章:
- 构造函数在退出函数时无法初始化一个参数
- 当一个值是非常量但用常量表达式初始化时使用constexpr
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- 从另一个静态常量数组初始化静态常量数组(只需少量计算)
- 有没有办法一次声明相同类型的多个对象,并通过一个表达式立即使用相同的右值初始化它们?
- C++:将初始化的对象传递给另一个类的构造函数;需要不必要的构造函数吗?
- 将另一个类的对象传递到当前类C++的构造函数中(不是成员初始化)
- 'auto *x = new some_struct{};"是一个未初始化的变量?
- 有没有办法使用该类的构造函数初始化另一个类的私有部分内的对象数组?
- 初始化类中的指针数组,并在另一个类中检索它
- C++,每个循环初始化一个新的静态变量
- 初始化一个由 p 指向的新 INTSTK,它最多可以存储 m 个
- 如何初始化一个标准::字符串数组?
- 我们如何初始化一个C++中所有值为 0 的向量
- C++ 警告:在一个声明中将截断从双精度初始化为浮点数,但在另一个声明中则不初始化
- 从C++调用 Python 类方法,如果给定一个初始化的类作为 PyObject
- C++11使variadic构造函数了解一个初始化列表的初始化列表
- 静态变量已用另一个初始化
- 与可以一个从另一个初始化的类的循环依赖关系
- 另一个初始化静态 C++ 类成员