把数据和操作绑在一起——类是一张图纸,对象是照图纸造出来的车。
对象.方法() 调用;private。| 写法 | 含义 | 结果 |
|---|---|---|
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(不带括号)只拿到函数地址、不执行。