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

相关推荐
All for pursuit.10 小时前
【位运算-1】338.比特位计数
数据结构·c++·算法·leetcode
小师兄吃牛肉11 小时前
C语言中的nullptr有必要吗
c语言·c++·算法
WL学习笔记12 小时前
日期类(C++)
开发语言·c++·日期类实现
H.莓飛12 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
汉克老师14 小时前
GESP2026年9月认证C++八级( 第一部分选择题(1~7题)精讲
c++·gesp·小学生·学c++编程
郝学胜_神的一滴15 小时前
C++ Templates 06:搞懂模板代码的三种组织方式
c++·visual studio
C++ 老炮儿的技术栈15 小时前
sizeof操作符
c语言·c++·人工智能·mfc·c
沫璃染墨15 小时前
《Linux工程实践篇(一):认识设计模式——从日志系统看策略模式》
linux·c++·安全·设计模式·策略模式
wuminyu16 小时前
ForkJoinPool内部WorkQueue的Lock-Free数组操作以及并发任务窃取原理剖析
java·linux·c语言·jvm·c++
Zguigo16 小时前
【CUDA8】第一个CUDA C++ Kernel --vector add
java·开发语言·c++