当然!以下是《【C++掌中宝】类和对象(一):类的定义和实例化》的内容框架与详细讲解,适用于新手入门学习 C++ 面向对象的第一步,也可作为系列教程中的第一个小节。内容清晰、节奏紧凑、适合图文或视频形式发布。
📘【C++掌中宝】类和对象(一):类的定义和实例化
面向对象的第一块基石,从
class
关键字开始
📑 目录
- 为什么要有类?(面向对象的动机)
- 类的基本语法结构
- 如何实例化对象
- 成员变量与成员函数
- 类内定义 vs 类外定义
- 访问控制:public、private、protected
- 小结与练习题
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: |
🧠 思考与练习
- 定义一个类
Book
,包含书名、作者、价格,并实现一个display()
方法输出信息。 - 使用类外定义的方式编写
display()
方法。 - 思考:每次你写一个类时,是不是都可以把“属性”和“行为”同时考虑进去?
📚 拓展阅读
- 《C++ Primer 第5版》第7章 类(强烈推荐)
- cppreference.com – class keyword
- Bjarne Stroustrup: Classes – C++ Foundation
发表回复