第一节 · 从原子到宇宙 · 面向对象概述

面向对象编程是 C++ 的核心特性之一。是用户自定义的类型,对象是类的实例。


定义类

class Person
{
public:
    // 成员变量
    string name;
    int age;
    
    // 成员函数
    void introduce()
    {
        cout << "I'm " << name << ", " << age << " years old." << endl;
    }
};

int main()
{
    // 创建对象
    Person p;
    p.name = "Alice";
    p.age = 25;
    p.introduce();  // I'm Alice, 25 years old.
    
    return 0;
}

访问控制

修饰符
含义

public

任何地方都可访问

private

只有类内部可访问

protected

类内部和派生类可访问


struct vs class

唯一区别是默认访问权限:

  • struct:默认 public

  • class:默认 private


构造函数


初始化列表

为什么用初始化列表?

  • 效率更高(直接构造,而非先默认构造再赋值)

  • const 成员和引用成员必须使用

  • 可以控制初始化顺序


析构函数


this 指针


const 成员函数


静态成员


习题

  • 设计一个 Date 类,包含年月日,并实现日期比较。

  • 解释构造函数初始化列表和函数体内赋值的区别。

  • 实现一个统计对象数量的类。

Last updated