C++ 中的对象(Object) 是类(Class)的实例化产物,是面向对象编程(OOP)的核心载体,封装了数据(成员变量)和操作数据的行为(成员函数 / 方法),也是实现封装、继承、多态三大 OOP 特性的基础。以下是其核心信息的详细拆解:
- 类是对象的 “模板 / 蓝图”,定义了对象具备的属性和行为;对象则是类在内存中分配的具体实体,每个对象拥有独立的成员变量(存储在栈 / 堆),但共享类的成员函数(节省内存)。
示例:
// 定义类(模板)
class Car {
public:
string brand; // 成员变量(属性)
void run() { // 成员函数(行为)
cout << brand << " is running!" << endl;
}
};
// 实例化对象(具体实体)
Car myCar;
myCar.brand = "Tesla";
myCar.run(); // 调用成员函数,输出:Tesla is running!
- 封装性:对象的私有成员(
private)仅能通过公有成员函数访问,隐藏内部实现,仅暴露对外接口,保障数据安全。
- 继承性:子类对象可继承父类的成员(除私有),并可扩展新属性 / 行为,例如
ElectricCar 继承 Car 后,新增 battery 成员。
- 多态性:同一行为在不同对象上表现不同,核心通过虚函数实现。例如父类
Car 的 run() 函数,子类 ElectricCar 重写后,父类指针指向子类对象时,调用的是子类的 run()。
- 对象的生命周期:从创建(构造函数调用)到销毁(析构函数调用)的全过程,构造函数初始化对象,析构函数清理资源(如堆内存、文件句柄)。
- 对象拷贝:默认拷贝构造函数 / 赋值运算符会浅拷贝(仅复制值),若成员包含指针,需自定义深拷贝避免野指针。
- this 指针:每个非静态成员函数都隐含
this 指针,指向当前对象,可用于区分成员变量和局部变量(如 this->brand = brand;)。