我们可以将"类"比作图纸,"对象"是根据图纸造出来的实物。
比如我们用 "造汽车" 来打个比方。
1. 什么是"类"(Class)?
类就是一张"汽车设计图纸"或者"说明书"。
在图纸上,你会规定这辆车应该具备什么:
- 属性(特征):比如车是什么颜色、什么牌子、有几个轮子。
- 方法(行为):比如这辆车能启动、能加速、能刹车。
重点 :图纸本身能开吗?不能。它只是一个概念 ,一个模板 ,存在于你的脑海里或画在纸上,它不是真实存在的东西。在C++里,你写代码画出这张图纸的过程,就叫 "定义类"。
2. 什么是"对象"(Object)?
对象就是根据图纸,真正造出来的那辆"能跑的真车"。
有了图纸(类)之后,工厂就可以开始造车了:
- 造出来一辆红色的比亚迪,这是一个对象。
- 造出来一辆黑色的特斯拉,这是另一个对象。
虽然它们都是根据同一张图纸造出来的,但每辆车都有自己具体的颜色,都能真正在马路上跑。这些具体的、看得见摸得着的实体,就是"对象"。 在C++里,你拿着图纸去造车的过程,就叫 "创建对象"(专业术语叫"实例化")。
3. 一句话总结它们的关系
- 类是抽象的 ,对象是具体的。
- 一个类可以造出无数个对象(一张图纸可以造一万辆车)。
- 对象是类的具体表现(没有图纸造不出车,没有车图纸就毫无意义)。
4. 放到 C++ 代码里长什么样?
我们来看看这张"图纸"和造出来的"车"在代码里是怎么写的:
cpp
#include <iostream>
#include <string>
using namespace std;
// ================= 1. 画图纸(定义类) =================
class Car {
public:
string color; // 【属性】:车是什么颜色
void run() { // 【行为/方法】:车能跑
cout << "滴滴!车跑起来了!" << endl;
}
};
// ================= 2. 造真车(创建对象) =================
int main() {
// 根据图纸,造了一辆属于我的车(对象1)
Car myCar;
myCar.color = "红色"; // 我的车是红色的
myCar.run(); // 让我的车跑起来
// 根据同一张图纸,又造了一辆属于你的车(对象2)
Car yourCar;
yourCar.color = "黑色"; // 你的车是黑色的
yourCar.run(); // 让你的车跑起来
return 0;
}
解析:
class Car { ... }这部分就是类(图纸),它规定了车有颜色、能跑。Car myCar;和Car yourCar;就是对象(真车),它们是真实存在于电脑内存里的东西,你可以给它们涂上不同的颜色,让它们分别跑起来。
这就是C++里类和对象最本质的区别!