1.构造函数
1.1构造函数的概念
构造函数是C++中的特殊成员函数,用于初始化新创建的对象。当一个类的对象被声明并实例化时,构造函数自动被调用。它的主要作用是确保对象在其生命周期开始时就处于有效状态。
1.2构造函数的思想
构造函数的思想是在创建对象时,用于初始化对象的成员变量和执行其他必要的操作。构造函数在对象创建时自动调用,不需要手动调用。构造函数的主要目的是确保对象被正确地初始化,以便在使用对象时不会出现未定义的行为或错误。
1.3构造函数的特点
1)构造函数的名称与类名称相同,并且没有返回类型(包括void类型),包括默认构造函数和带参数的构造函数。
2)构造函数可以重载,即在同一个类中可以定义多个具有不同参数列表的构造函数。
3)构造函数可以带有参数,在创建对象时,可以根据传递的参数值来初始化对象的成员变量。
4)构造函数可以进行一些初始化操作,例如分配内存、调用其他对象的构造函数等。
5)构造函数可以被继承,子类可以调用父类的构造函数来初始化父类的成员变量。
1.4构造函数的作用
1)对象的初始化:构造函数用于初始化对象的成员变量,确保对象在创建时具有正确的初始状态。
2)分配和初始化成员变量:构造函数可以分配并初始化类的成员变量,以便在对象创建时设置默认值或特定的初始状态。
3)进行必要的前置操作:构造函数可以执行一些必要的前置操作,例如打开文件、连接数据库等。
4)为对象分配内存:构造函数负责为对象分配内存空间,这通常发生在通过 new 运算符创建对象时。
5)链接到其他对象或资源:构造函数可以将对象链接到其他对象或资源,以便对象能够使用这些外部资源。
6)初始化对象的状态:构造函数可以设置对象的初始状态,例如设置指针成员变量为 null、设置计数器为 0 等。
7)执行其他必要的操作:构造函数还可以执行其他与对象创建相关的必要操作,如申请资源、注册回调函数等。
8)为派生类提供基类的初始化:在派生类的构造函数中,可以通过调用基类的构造函数来初始化继承自基类的成员变量。
1.5构造函数的操作
1)定义类结构:
class Book {
private:
char* title; // 私有成员变量,用于存储动态分配的标题字符串
public:
// 构造函数声明
Book(const char* t);
};
2)实现构造函数:
在类外部实现构造函数,它负责接收一个 C 风格字符串并将其复制到动态分配的内存中。
Book::Book(const char* t) {
// 计算字符串长度(包括终止符 '