相关疑难解决方法(0)

C++零初始化

根据http://en.cppreference.com/w/cpp/language/zero_initialization,我无法理解何时以及为什么我的班级中的某个成员是零初始化的.

考虑以下测试程序:

#include <iostream>
#include <stdio.h>

class MyTest {
private:
    const static unsigned int dimension = 8;
    void (* myFunctions [dimension])();

public: 
    MyTest() {}

    void print() { 
        for(unsigned int i=0; i < MyTest::dimension; i++) {
            printf("myFunctions[%d] = %p\n", i, this->myFunctions[i]);
        }   
    }
};


int main() {
    //We declare and initialize an object on the stack 
    MyTest testObj = {};
    testObj.print();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我声明一个类有一个包含签名"void functionname()"的8个函数指针的数组.当我宣布和初始化类的对象main作为MyTest testObj = {};或者MyTest testObj;,我希望它是零初始化,即所有指针都是空指针.

但是,在带有g++ -m32 …

c++ c++14 zero-initialization

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

默认情况下如何初始化局部变量和全局变量?

基于以下,我是对的吗?

  • global_A引用初始化为null.
  • global_int为0
  • local_A引用为null
  • local_int未初始化
  • global_A.x和local_A.x都未初始化.

谢谢你的帮助.


A global_A;
int global_int;

class A {
  public : int x;
}

int main()
{
  int local_int;
  A local_A;
}
Run Code Online (Sandbox Code Playgroud)

c++ initialization

10
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++ ×2

c++14 ×1

initialization ×1

zero-initialization ×1