类与对象

把数据和操作绑在一起——类是一张图纸,对象是照图纸造出来的车。

商用

◎学完你会

1动一动:造对象、调方法

class Car { public: int speed; // 成员变量:数据 void run(){ ... } // 成员函数:操作 }; Car myCar; // 对象 = 类的实例 myCar.speed = 60; myCar.run();
Car myCar → speed=? 点按钮让车跑起来
先造对象,再通过对象调用它自己的方法。

2关键命令

写法含义结果
class Car{...};定义类(图纸)新类型
Car myCar;造一个对象类的实例
myCar.run();调对象的方法执行操作
myCar.speed访问成员变量取/改数据
结构体只有“数据”,类是“数据 + 操作”一起封装。class 默认 private(外面不能直接碰),结构体默认 public。

⚠易错点

成员函数要定义/实现:光在类里写 void run();(只有声明)不够,要么类内实现 void run(){...},要么类外 void Car::run(){...}。只声明不实现会“未定义引用”。
类默认 private:不像结构体默认 public。忘写 public:,外面 myCar.speed=60 会编译报错。

?跨学科:类像“造车的图纸”

一张汽车图纸定义了轮子、引擎、怎么启动——它不是车本身,但照着它能造出无数辆车。类就是这张图纸:定义结构和能力,每次造出来的对象才是一辆能开的车。

这就是面向对象:把“是什么”(数据)和“能做什么”(操作)绑在一起,像管理现实中的一个个实体。银行账户、订单、学生,都能按这个思路建模。

✎练一练

class Car{...}; Car myCar; 中 myCar 是什么?
类是“类型/图纸”,myCar 是类的实例(对象)。造对象用 类名 变量名,就像 int x。
要让对象 myCar 执行启动动作,正确的是?
答案:myCar.start();——用“对象名 + 点 + 方法名()”调用成员函数,myCar.start(不带括号)只拿到函数地址、不执行。