概述
在掌握了类与对象的基础概念后,我们需要进一步探讨编译器自动生成的默认成员函数。这部分内容涉及构造函数、拷贝构造函数、析构函数以及操作符重载,是 C++ 面向对象编程的核心。
一、类的默认成员函数
默认成员函数是指用户未显式实现时,由编译器自动生成的函数。一个类中通常包含以下四个关键部分:
- 构造函数
- 拷贝构造函数
- 析构函数
- 赋值运算符重载
掌握这两个维度至关重要:一是理解编译器自动生成函数的行为及其适用场景;二是当默认行为无法满足需求时,如何自定义实现。
二、构造函数
构造函数可以理解为对象的'出厂设置'。当根据类定义创建新对象时,它负责初始化对象的状态(如赋值、分配内存)。需要明确的是,构造函数不负责开辟空间,那是栈帧的任务,它的职责是初始化。
2.1 核心语法
#include <iostream>
using namespace std;
class Student {
public:
int age;
// 构造函数:类名 (参数)
// 1. 无返回值
// 2. 名称与类名相同
Student() {
age = 18;
cout << "调用了默认构造函数" << endl;
}
};
int main() {
Student s1; // 声明对象时自动调用
// s1.Student(); // 错误:不需要手动调用
cout << s1.age << endl;
return 0;
}
语法规则总结:类名作为函数名,无返回值类型,参数可选。
2.2 构造函数的常见类型
无参构造函数 不带任何参数的构造函数。
class Date {
public:
Date() { _year = 1; _month = 1; _day = 1; }
private:
int _year, _month, _day;
};
带参构造函数 允许创建对象时传入特定值。


