相关疑难解决方法(0)

为什么我的struct的成员没有使用`{}`正确初始化?

我有以下代码:

#include <iostream>

struct T
{
   int a, b, c;
};

int main()
{
   T t = {0};
   std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
Run Code Online (Sandbox Code Playgroud)

输出:

0,0,0
Run Code Online (Sandbox Code Playgroud)

经过多年的代码在一个关键的生产环境中愉快地运行,提供一个重要的功能,项目的要求发生了变化,我需要输出1,1,1.

于是,我换{0}{1}:

#include <iostream>

struct T
{
   int a, b, c;
};

int main()
{
   T t = {1};
   std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
Run Code Online (Sandbox Code Playgroud)

输出:

1,0,0
Run Code Online (Sandbox Code Playgroud)

1,1,1反而期待了. …

c++ initialization c++-faq

14
推荐指数
1
解决办法
4647
查看次数

标签 统计

c++ ×1

c++-faq ×1

initialization ×1