C 中的非初始化类成员会发生什么
What happens to uninitialized class members in c++?
C 中的非初始化类成员会发生什么?如果我必须这样做,我应该照顾什么?
#include <iostream>
using namespace std;
class Foo {
int attr1, attr2;
public:
Foo ();
Foo::Foo () { attr1 = 5; }
Foo myThing();
C 中的非初始化类成员会发生什么?
它们是默认初始化的,如果int
之类的基本类型,则意味着它具有不确定的值。
我应该照顾什么?
您应该注意永远不要阅读不确定的值。
它们是默认结构的。
对于嵌套类,这意味着这些必须具有一个可以在没有参数的情况下调用的构造函数。
对于普通的旧数据成员(int
等),这意味着它们只是像任何其他 local 变量一样,保持不可原始化。
相关文章:
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 常量公共成员有什么问题?
- 空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?
- Visual C++: MSVC vs. GCC+CLANG: 处理 lambda 捕获类成员变量,正确的方法是什么?
- 什么是更好的做法?通过指针或标识符传递类成员?
- 什么可以防止类中相邻成员重叠
- 指针类型类成员的动态强制转换的恒定性是什么?
- 删除类成员的动态分配内存的最佳方法是什么
- 使用 const char* 初始化 const ref 字符串成员时幕后会发生什么
- 初始化类成员的更好做法是什么?
- 键入擦除成员函数指针的"right"方法是什么?
- 构造函数中没有参数的对象类成员按什么顺序初始化?
- 使用只有一个成员的工会的目的是什么?
- 什么是指向成员模板参数的指针
- 常量成员和没有setter的私有成员之间有什么区别
- C++:允许临时对象调用非常量成员函数的设计理念是什么?
- 为什么我应该在scanf()-家族成员中包含一个长度修饰符作为参数?有什么好处?使用长度修改器进行扫描的作用
- 命名空间 Win 没有成员"simpleControl"是什么意思
- 在C++中,从构造函数中将字符串文本分配给成员const char*变量时会发生什么