内存分区
栈就是驿站,相当于住宾馆,被子,卫生啥的有服务员打理
堆相当于自己的家,需要自己打理
对象初始化
构造函数可以有多个重载形式
实例化对象时仅用到一个构造函数
当用户没有定义构造函数时,编译器自动生成一个构造函数
无参构造函数
有参构造函数
重载构造函数
默认构造函数
在实例化过程中不需要传递参数的构造函数称为默认构造函数
如果在类中没有定义构造函数,则c++会自动生成一个构造函数,该构造函数称为默认构造函数(没有参数)!
如果定义了构造函数,则创建对象时依据定义的构造函数;
如果定义的构造函数形参列表都包含默认值,则创建对象时可以使用默认构造函数.(有点晕啊。。其实不是很明白为什么要构造函数)
构造函数初始化列表
初始化列表先于构造函数执行
初始化列表只能用于构造函数
初始化列表可以同时初始化多个数据成员
用构造函数初始化:相当于二次赋值
必须用初始化列表初始化
拷贝构造函数
1.如果没有自定义的拷贝构造函数则系统自动生成一个默认的拷贝构造函数
2.当采用直接初始化或复制初始化实例化对象时系统自动调用拷贝构造函数
总结
析构函数
其主要作用就是释放内存
如果没有自定义的析构函数则系统自动生成
析构函数在对象销毁时自动调用
析构函数没有返回值、没有参数也不能重载
总结