1. 类与对象基础概念解析
在C++编程语言中,类和对象是最核心的面向对象编程概念。类可以理解为一种用户自定义的数据类型,它不仅仅包含数据成员,还包含操作这些数据的成员函数。而对象则是类的具体实例,就像建筑设计图纸(类)和实际建造出来的房子(对象)之间的关系。
初学者常犯的一个误区是混淆类声明和对象定义。类声明只是定义了这种类型的结构,并不会占用内存空间。只有当创建类的实例(即对象)时,才会真正分配内存。例如:
cpp复制class Student { // 类声明
string name;
int age;
};
Student s1; // 对象定义,此时才分配内存
提示:在C++中,类定义通常放在头文件(.h)中,而成员函数实现则放在源文件(.cpp)中,这是良好的工程实践。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 类的六大默认成员函数详解
2.1 构造函数与析构函数
构造函数是类中非常特殊的成员函数,它在对象创建时自动调用。如果没有显式定义构造函数,编译器会生成一个默认的无参构造函数。但一旦定义了任何构造函数,编译器就不再提供默认构造函数。
cpp复制class Person {
public:
Person() { cout << "默认构造函数" << endl; }
Person(string n) : name(n) { cout << "带参构造函数" << endl; }
private:
string name;
};
析构函数则是在对象生命周期结束时自动调用的函数,用于释放资源。它没有返回值,也不接受参数:
cpp复制~Person() {
cout << "析构函数被调用" << endl;
}
注意:如果类中有动态分配的内存,必须自定义析构函数来释放这些资源,否则会造成内存泄漏。
2.2 拷贝构造函数
拷贝构造函数用于通过已有对象创建新对象,其典型声明形式为:
cpp复制Person(const Person& other);
当发生以下情况时会调用拷贝构造函数:
- 用一个对象初始化另一个对象
- 对象作为函数参数按值传递
- 对象作为函数返回值
浅拷贝与深拷贝是拷贝构造函数中的关键概念。默认的拷
