相关疑难解决方法(0)

964
推荐指数
5
解决办法
11万
查看次数

131
推荐指数
4
解决办法
12万
查看次数

默认值,值和零初始化混乱

我对value-&default-&zero-initialization非常困惑.特别是当他们参与不同的标准C++ 03C++ 11(和C++ 14)时.

我引用并试图在这里扩展一个非常好的答案Value-/Default-/Zero-初始化C++ 98C++ 03,以使其更加通用,因为它可以帮助很多用户,如果有人可以帮助填写需要差距,以便对何时发生的情况有一个很好的概述?

通过示例的全面见解简而言之:

有时新运算符返回的内存将被初始化,有时它不会取决于您正在新建的类型是POD(普通旧数据),还是它是一个包含POD成员且正在使用的类编译器生成的默认构造函数.

  • C++ 1998中,有两种类型的初始化:默认初始化
  • C++ 2003第三种类型的初始化中,添加了值初始化.
  • C++ 2011/C++ 2014中,仅添加了列表初始化,并且value-/default-/zero-initialization的规则稍有改变.

假设:

struct A { int m; };                     
struct B { ~B(); int m; };               
struct C { C() : m(){}; ~C(); int m; };  
struct D { D(){}; int m; };             
struct E { …
Run Code Online (Sandbox Code Playgroud)

c++ c++11 c++03 c++98 c++14

81
推荐指数
2
解决办法
1万
查看次数

用给定大小初始化的 std::vector 的值是多少?

如果我这样初始化std::vector

vector<int> sletmig(300);
Run Code Online (Sandbox Code Playgroud)

它将所有 300 个值设置为零,还是保留我计算机内存中的内容?

c++ memory initialization vector std

3
推荐指数
1
解决办法
757
查看次数

未初始化的向量中的元素值是多少?

如果我创建一个像vector<myClass> v(10); 每个元素的默认值的向量?


还有,如果它是vector<myUnion> v(10)什么?

c++ vector default-value

0
推荐指数
1
解决办法
1374
查看次数