C++中什么是类,什么是对象

我们可以将"类"比作图纸,"对象"是根据图纸造出来的实物。

比如我们用 "造汽车" 来打个比方。

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++里类和对象最本质的区别!

相关推荐
xiaoye-duck16 分钟前
《C++ 工具库实战》GTest 单元测试:断言、全局环境、局部夹具与底层原理
c++·单元测试·第三方库
学逆向的23 分钟前
C++ 匿名命名空间
开发语言·c++·网络安全
miller-tsunami34 分钟前
内存管理&模板
c++·算法·内存管理·模板
青少儿编程课堂42 分钟前
蓝桥杯青少组·全国青少年信息素养·电子学会Scratch考级:校园智能抢答器项目解析
c++·python·算法·bfs·信息学竞赛
充值内卷1 小时前
[特殊字符] 自己动手做一个类 tldraw 的桌面白板:StepDraw 开源啦(C++ + WebView2 + Canvas)
开发语言·c++
raindayinrain1 小时前
c++对象模型--内存布局,多态,运行时类型识别
开发语言·c++
cu1432 小时前
细谈IT6653的具体功能与其应用
c语言·c++·单片机·嵌入式硬件
夏虫不可与之言冰2 小时前
RMT 与 WS2812 灯带:可寻址 RGB 全彩控制
c语言·c++·单片机·物联网·visual studio
起个名字都难啊3 小时前
visual studio C/C++空项目修改为CUDA c++
c++·windows·visual studio
羊锦磊3 小时前
嵌入式基础1
c语言·c++·gnu