Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 隐式字段初始化的规则_C++_Class_Constructor_Initialization_Stack - Fatal编程技术网

C++ 隐式字段初始化的规则

C++ 隐式字段初始化的规则,c++,class,constructor,initialization,stack,C++,Class,Constructor,Initialization,Stack,我最近修复了我的一个应用程序中的一个bug:问题是,驻留在堆栈上的对象有一个未初始化的字段 对象具有此类型的类声明: struct A{ int somefield, someotherfield; A(): someotherfield(0) {} } 当声明一个局部变量(比如函数中的var;)时,somefield未初始化,因此读取它会返回一个随机值 我确信,一个类的字段(没有出现在构造函数初始化列表中)总是由一个合成的平凡构造函数(在int的情况下是零值)初始化。显然我错

我最近修复了我的一个应用程序中的一个bug:问题是,驻留在堆栈上的对象有一个未初始化的字段

对象具有此类型的类声明:

struct A{
    int somefield, someotherfield;
    A(): someotherfield(0) {}
}
当声明一个局部变量(比如函数中的
var;
)时,
somefield
未初始化,因此读取它会返回一个随机值

我确信,一个类的字段(没有出现在构造函数初始化列表中)总是由一个合成的平凡构造函数(在int的情况下是零值)初始化。显然我错了

那么隐式字段初始化的一般规则是什么呢?

  • 类和结构由构造函数初始化
  • 基本类型int双字符短。。。未初始化且包含随机数
  • 指针未初始化并指向随机位置
  • 类或结构的数组使每个元素由其构造函数初始化
  • 基本类型或指针的数组是随机的

阵列呢?每个元素有相同的规则吗?