C++ 提供的 构造函数 和 析构函数 作为 类实例对象的 初始化 和 销毁 方案 ;
定义一个类的 若干 实例对象 , 每个对象都有独立的 成员属性 ;
当 定义 类的 实例对象时 , C++ 编译器 会自动调用 开发者定义的 构造函数 ;
类 的 构造函数 可以 自动调用 , 也可以手动调用 ;
构造函数的替代方案 - 初始化函数 :
初始化函数 与 构造函数 对比 的缺陷 :
如果 定义 类 时 , 没有写 构造函数 , C++ 编译器 会 为类 提供一个默认构造函数 ;
默认构造函数 的 函数体为空 , 不需要开发者定义 , 由 C++ 编译器默认提供 ;
默认构造函数 分为 2 种类型 :
下面的代码中 在 Student 类中 , 定义了初始化 函数 :
// 初始化函数 初始化 实例对象
void init(int _age, int _height)
{
m_age = _age;
m_height = _height;
}
在使用 Student s
代码定义实例对象的场景下 , 无法及时地调用 初始化函数 ;
代码示例 - 初始化函数 :
#include "iostream"
using namespace std;
class Student
{
public:
// 初始化函数 初始化 实例对象
void init(int _age, int _height)
{
m_age = _age;
m_height = _height;
}
public:
int m_age; // 年龄
int m_height; // 身高
};
int main()
{
// 定义 Student 类实例对象
// Student 类 没有提供构造函数 , C++ 编译器 会提供一个 默认构造函数
// Student 类 没有提供拷贝构造函数 , C++ 编译器 会提供一个 默认拷贝构造函数
Student s;
// 调用初始化函数
s.init(18, 170);
// 控制台暂停 , 按任意键继续向后执行
system("pause");
return 0;
}
执行结果 :