C ++在同一行中声明多个变量

时间:2015-06-16 20:57:30

标签: c++

我知道声明像int a = 10, b = 15, c = 20这样的变量是可能的并且没关系,但是在c ++编程语言的任何程序中都可以声明int a, b, c = 10, 15, 20这样的变量a要成为10b必须为15c20

这是可能的,并且是在c ++中声明这样的变量的正确方法吗?

编辑:是否可以使用重载运算符=

2 个答案:

答案 0 :(得分:7)

编译器将为此类声明发出错误

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 };
  

编辑:是否可以使用重载运算符=?

没有使用复制分配操作符。这是一个宣言。复制赋值运算符与已定义的对象一起使用。:)

答案 1 :(得分:1)

int a, b, c = 10, 15, 20;

无效,(即使它可能会将c初始化为20(使用逗号运算符)并让ab取消初始化。

使用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