C++ 类的构造函数
默认构造函数
如果你定义一个类,并且没有给它定义构造函数。编译器会为这个类提供默认的构造函数。如果你提供了构造函数,编译器是不会再为你提供一个默认构造函数的。编译器提供的默认构造函数什么都没做。类的成员变量将遵守默认的初始化规则。
编译器提供的默认构造函数的初始化规则:
在栈和堆中的类对象的内置或复合类型成员变量将为脏数据;
在全局变量区的类对象的内置或复合类型成员变量初始化为0;
类对象成员将调用默认的构造函数来初始化;
#include
using na
前言
定义没有初始化式的变量时,系统有时候会帮我们初始化变量。
系统如何初始化取决于变量的类型以及变量定义的位置。
内置类型变量是否自动初始化取决于变量定义的位置。
函数体外定义的变量初始成0;函数体内定义的变量不进行自动初始化。除了用作赋值操作的左操作数,其他任何使用未初始化变量的行为都是未定义的,不要依赖未定义行为。
以int类型为例,一段简单的测试代码:
#include
using namespace std;
int a;
int main()
{
int b;
cout &