c++ - 为什么c++没有默认初始化

标签 c++ pointers c++11

<分区>

例如,声明一个引用而不将其分配给某物会导致编译器错误,例如。 int &refVar; 但这不适用于指针。我知道 C++ 会跳过一些合理的默认功能,例如跳过绑定(bind)检查等以提高速度,但这个理论不太适合指针变量。

为什么有人会声明一个指针变量而不将其初始化为某物?为什么不使用 NULL/0 甚至 nullptr?大多数静态分析器实际上指出了这个问题,但是定义这个未定义行为的可能原因是什么?这不是 bug 的主要来源吗?

最佳答案

我认为这很可能是由于初始化这些变量可能产生的开销。这对于一个变量来说可能不是什么大问题,但想象一下在堆栈上分配的数组。

关于c++ - 为什么c++没有默认初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34902700/

相关文章:

c - c中指向结构体变量的指针

c++ - 我可以在类主体中默认一个私有(private)构造函数吗?

C++ - 类方法函数指针的 unordered_map 的初始化列表

c++ - OpenCV 与 ROS 的链接问题

c++ - std::vector 和 c 风格数组

c++ - 如何使用其复制构造函数和复制赋值是私有(private)的对象?

Python 和 C 互操作 : Dynamic resizing of ctypes

c++ - 关于 C++ 中 union 使用的内存效率

c++ - 为右值对象调用非常量成员函数是否安全?

c++ - constexpr 中的字节顺序