blog.dopana

Back

C++入门系列最后一篇。类把数据以及操作这些数据的函数打包成单一单元——这是面向对象编程的核心。

什么是类#

类是蓝图。对象是根据蓝图创建的具体实例。

访问修饰符#

  • public: — 任何地方都能访问。
  • private: — 只能在类内部访问。

数据通常设为 private,用 public 成员函数作为接口。这就是封装。

class Counter {
private:
    int count = 0;

public:
    void increment() { ++count; }
    int get() const { return count; }
};
cpp

外部代码不能直接触碰 count,必须通过 increment()get()

构造函数#

构造函数在创建对象时运行。它与类同名,没有返回类型:

class Player {
public:
    std::string name;
    int level;

    Player(std::string n, int l) : name(n), level(l) {}
};
cpp

成员初始化列表 : name(n), level(l) 设置成员变量。现在创建对象需要参数:

Player p("Ada", 5);
cpp

方法#

在类内声明的成员函数作用于该对象。末尾的 const 承诺这个方法不会修改对象:

int getLevel() const { return level; }
cpp

实践中的封装#

class BankAccount {
private:
    double balance = 0;

public:
    void deposit(double amount) {
        if (amount > 0) balance += amount;
    }

    double getBalance() const { return balance; }
};
cpp

余额无法从外部被设为负数——类自己掌控数据。

结论#

至此,C++入门系列全部结束:第一个程序、变量与类型、控制流、函数、指针与引用,再到类。用每个概念写点小程序,继续前进——标准库和STL是顺理成章的下一步。

参考资料#