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

相关推荐
钓鱼的肝5 小时前
梳理(1-5)
c++·经验分享·笔记·算法·青少年编程
jimy16 小时前
readelf 查看“派生类”的vtable符号
开发语言·c++
蒸蒸yyyyzwd7 小时前
cpp 选手秋招学习笔记 day37 面经学习
c++·八股
YYYing.7 小时前
【C++进阶系列 (七)】C++ RTTI 深度剖析:从 typeid 到 dynamic_cast 的底层之旅
开发语言·c++·c/c++·rtti
钓鱼的肝8 小时前
csp-j-s总结(2)
c++·经验分享·笔记·算法·青少年编程
重生的黑客9 小时前
Qt 常用控件精讲(1):QWidget 核心属性全解 —— 从 geometry 到 qrc 与 QSS
c++·qt·qwidget·qss·常用控件
Hespethorn9 小时前
取 `X-Forwarded-For` 首段做频控 key,等于把限流开关交给了调用方
c++
米糕闯编程9 小时前
鱼香ros2(七)功能包组织C++节点
c++·ros2·cmakelists
汉克老师9 小时前
GESP2026年9月认证C++四级( 第三部分编程题(1、新汉诺塔))精讲
c++·gesp·小学生·学c++编程