第1章封面

欢迎来到数据结构世界!🌍 但在玩转链表和树之前,第 1 章先给你一套「保命技能」——C++ 的核心语法。别怕,我们只讲读这本书必需的那部分。

🧩 程序 = 数据 + 指令

一个 C++ 程序的基本套路:声明变量 → 做运算 → 控制流程 → 封装成函数。书里用一个小游戏计分板程序贯穿全章,四个要点先划重点 ✍️:

int sum = 0;                 // 声明并初始化
for (int i = 1; i <= 10; i++) // for 循环
    sum += i;                // 复合赋值

🧠 最烧脑的部分:指针与引用

这是新手第一条分水岭,用「门牌号」理解:

  • 变量 = 房子里的东西;
  • 指针int* p)= 写着门牌号的纸条 📝;
  • 引用int& r)= 给房子起的别名 🏷️,从此两个名字指同一间房。
int x = 5;
int* p = &x;   // p 存的是 x 的地址
int& r = x;    // r 就是 x 的别名
*p = 10;       // 顺着纸条找上门,把 x 改成 10

动态内存是第二道坎:new 在堆上盖新房,delete 拆掉它。⚠️ 拆完继续用(悬空指针)或者盖了不拆(内存泄漏),都是后面章节反复强调的事故源。

🏛️ 类:把数据和函数打包

C++ 的灵魂来了。类(class)= 数据成员 + 成员函数 的蓝图:

class Counter {
private:                 // 外面看不见(封装)
    int count;
public:                  // 对外开放的服务窗口
    Counter() : count(0) {}        // 构造函数
    void increment() { count++; }
    int get() const { return count; }  // const = 承诺不改
};

三个必须记住的关键词:

  • 构造函数:对象出生时自动执行的初始化;
  • 析构函数 ~Counter():对象死亡时自动清理(还内存债的时刻);
  • const 成员函数:向编译器承诺「我只读不写」。

📂 文件组织的江湖规矩

书里反复强调的工程习惯:类的声明放 .h 头文件,实现放 .cpp 源文件。这个「接口与实现分离」的习惯,直接为第 2 章的抽象数据类型(ADT)铺路——用户只 include 你的头文件,不关心你怎么实现的。

🎯 本章通关清单

  • [ ] 能解释指针和引用的区别,并画出内存示意图
  • [ ] 会写一个带构造/析构函数的类
  • [ ] 理解 new/delete 配对使用的原因
  • [ ] 知道 .h.cpp 各放什么

搞定这些,下一章的面向对象设计就是水到渠成!💪