C++ 在同一行中声明多个变量
C++ declaring multiple variables in the same line
我知道像这样声明变量 int a = 10, b = 15, c = 20
是可能的而且没关系,但是在任何 C++ 编程语言的程序中,是否可以像这样声明变量 int a, b, c = 10, 15, 20
where a
需要10
,b
需要15
,c
需要20
。
在 C++ 中这样声明变量是否可行?
编辑:重载运算符=
是否可行?
int a, b, c = 10, 15, 20;
无效,(即使有效,它也可能会将 c
初始化为 20
(使用逗号运算符)并让 a
和 b
未初始化。
使用 c-array/std::array/std::vector 可能是一种选择:
int carray[3] = {10, 15, 20};
std::array<int, 3> a = {10, 15, 20};
std::vector<int> v = {10, 15, 20};
现在我们有 carray[0] == a[0] && a[0] == v[0] && v[0] == 10
编译器将针对此类声明发出错误
int a, b, c = 10, 15, 20;
我脑海中唯一的想法是:)
int a, b, c = ( a = 10, b = 15, 20 );
或者您可以使这些名称成为结构的数据成员
struct { int a, b, c; } s = { 10, 20, 30 };
EDIT: Is it possible with the overloading operator =?
没有使用复制赋值运算符。这是一个声明。复制赋值运算符用于已经定义的对象。:)
我知道像这样声明变量 int a = 10, b = 15, c = 20
是可能的而且没关系,但是在任何 C++ 编程语言的程序中,是否可以像这样声明变量 int a, b, c = 10, 15, 20
where a
需要10
,b
需要15
,c
需要20
。
在 C++ 中这样声明变量是否可行?
编辑:重载运算符=
是否可行?
int a, b, c = 10, 15, 20;
无效,(即使有效,它也可能会将 c
初始化为 20
(使用逗号运算符)并让 a
和 b
未初始化。
使用 c-array/std::array/std::vector 可能是一种选择:
int carray[3] = {10, 15, 20};
std::array<int, 3> a = {10, 15, 20};
std::vector<int> v = {10, 15, 20};
现在我们有 carray[0] == a[0] && a[0] == v[0] && v[0] == 10
编译器将针对此类声明发出错误
int a, b, c = 10, 15, 20;
我脑海中唯一的想法是:)
int a, b, c = ( a = 10, b = 15, 20 );
或者您可以使这些名称成为结构的数据成员
struct { int a, b, c; } s = { 10, 20, 30 };
EDIT: Is it possible with the overloading operator =?
没有使用复制赋值运算符。这是一个声明。复制赋值运算符用于已经定义的对象。:)