当然!以下是《【C++掌中宝】类和对象(一):类的定义和实例化》的内容框架与详细讲解,适用于新手入门学习 C++ 面向对象的第一步,也可作为系列教程中的第一个小节。内容清晰、节奏紧凑、适合图文或视频形式发布。


📘【C++掌中宝】类和对象(一):类的定义和实例化

面向对象的第一块基石,从 class 关键字开始


📑 目录

  1. 为什么要有类?(面向对象的动机)
  2. 类的基本语法结构
  3. 如何实例化对象
  4. 成员变量与成员函数
  5. 类内定义 vs 类外定义
  6. 访问控制:public、private、protected
  7. 小结与练习题

1. 为什么要有类?

在 C 中,我们习惯于用结构体和函数来管理数据。但当项目越来越大时,数据和行为分散、难以维护。C++ 引入了“类”的概念,让我们可以将数据(成员变量)和行为(成员函数)绑定在一起,形成一个更高级、更抽象的“对象”。

💡 类是现实世界对象在程序中的抽象表达,例如:

// 现实中的"学生"
数据:姓名、年龄、学号  
行为:学习、考试、签到

2. 类的基本结构

class Student {
public:                   // 公有访问权限
    // 成员变量(属性)
    std::string name;
    int age;

    // 成员函数(方法)
    void introduce() {
        std::cout << "Hi, my name is " << name << " and I'm " << age << " years old.\n";
    }
};
  • class 是定义类的关键字
  • public: 代表后续成员对外公开可访问
  • 类结尾必须加分号 ;

3. 如何实例化对象?

创建对象的方法如下:

int main() {
    Student s1;                   // 创建对象 s1
    s1.name = "Alice";            // 访问成员变量
    s1.age = 20;
    s1.introduce();               // 调用成员函数
}

对象是类的实例,内存中独立存储各自的成员变量。


4. 成员变量与成员函数

✅ 成员变量(属性)

  • 属于对象,每个对象都有独立一份

✅ 成员函数(方法)

  • 可访问对象内部成员
  • 定义行为(如输出、计算、操作数据)

5. 类内定义 vs 类外定义函数

你可以在类外定义成员函数:

class Student {
public:
    std::string name;
    int age;

    void introduce();  // 声明
};

// 类外定义
void Student::introduce() {
    std::cout << "I'm " << name << " and I'm " << age << " years old.\n";
}

👉 类名加 :: 是作用域解析符。


6. 访问控制关键字详解

关键字描述
public公有成员,类外部可以访问
private私有成员,仅类内可访问,默认权限
protected受保护成员,仅类和子类可访问

举例:

class Person {
private:
    std::string password;   // 不能直接外部访问

public:
    std::string name;

    void setPassword(std::string pw) {
        password = pw;
    }
};

✅ 小结

概念示例
类定义class ClassName { ... };
实例化对象ClassName obj;
成员访问obj.member
成员函数调用obj.method()
私有成员private:

🧠 思考与练习

  1. 定义一个类 Book,包含书名、作者、价格,并实现一个 display() 方法输出信息。
  2. 使用类外定义的方式编写 display() 方法。
  3. 思考:每次你写一个类时,是不是都可以把“属性”和“行为”同时考虑进去?

📚 拓展阅读