相关疑难解决方法(0)

为什么全局变量和静态变量初始化为默认值?

在C/C++中,为什么全局变量和静态变量初始化为默认值?

为什么不留下垃圾值呢?这有什么特别的原因吗?

c c++ static global-variables

61
推荐指数
4
解决办法
3万
查看次数

零初始化初始化列表中的数组成员

我有一个数组成员的类,我想初始化为全零.

class X
{
private:
    int m_array[10];
};
Run Code Online (Sandbox Code Playgroud)

对于局部变量,有一种简单的零初始化方法(参见此处):

int myArray[10] = {};
Run Code Online (Sandbox Code Playgroud)

此外,类成员m_array显然需要初始化,因为默认初始化整数会见好就收随机的垃圾,如解释在这里.

但是,我可以看到两种方法为成员数组执行此操作:

括号:

public:
    X()
    : m_array()
    {}
Run Code Online (Sandbox Code Playgroud)

带括号:

public:
    X()
    : m_array{}
    {}
Run Code Online (Sandbox Code Playgroud)

两个都正确吗?这两者在C++ 11中有什么区别吗?

c++ initialization array-initialization initialization-list

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

C++构造函数语法和零初始化

这是一个关于c ++语法的简短问题:

class arrayInit {
 public:
  bool vars[2];

  arrayInit() : vars() {} //1
};

class array {
 public:
  bool vars[2];
  array() {} //2
};
Run Code Online (Sandbox Code Playgroud)

1和2做什么?

为什么他们不像这样零初始化:bool vars[2]={};

是什么目的arrayInit() :array()?什么叫它所以我可以搜索它?

它来自:https://msujaws.wordpress.com/2010/06/16/initializing-an-array-in-c/

c++ syntax c++11

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