一、类的定义
在 C++ 中,类是对一类对象的抽象描述。它定义了对象拥有哪些属性(变量)和行为(函数)。
class Stack
{
public:
void Push(int x);
void Pop();
private:
int _data[100];
int _top;
};
注意:类定义的最后 一定要加分号
;!
💡 成员分类
-
成员变量(属性):保存对象的数据。
-
成员函数(方法):定义对象的行为。
为了区分成员变量,C++ 开发中常用命名规范:
-
_name(前加下划线) -
m_name(前加 m)
这些都是编码习惯,并不是语法要求。
二、访问限定符
访问限定符(Access Specifier)用于控制成员的访问权限。
C++ 中有三种:
| 限定符 | 含义 | 类外是否可访问 |
|---|---|---|
| public | 公有成员 | ✅ 可以访问 |
| protected | 受保护成员 | ❌ 不能访问(子类可访问) |
| private | 私有成员 | ❌ 不能访问 |
class Person
{
public:
void SetName(string name);
void ShowInfo();
private:
string _name;
int _age;
};
一般情况下:
-
成员变量 → 用
private或protected -
成员函数 → 用
public
🧠 小细节
-
class默认访问权限是 private -
struct默认访问权限是 public所以在 C++ 中,
struct其实也能定义类,只是默认权限不同。
三、类的实例化
所谓实例化,就是用类创建对象的过程。
Person p; // 在内存中分配空间,生成一个对象 p
类本身只是一个“模型”或“蓝图”,
而对象才是真正在内存中存在的实体。
举个比喻:
类是图纸,对象是按照图纸造出的房子。
四、this 指针
当类中有多个对象时,比如:
Person p1, p2;
它们都调用同一个成员函数:
p1.SetName("Alice");
p2.SetName("Bob");
那编译器如何知道函数里操作的是哪个对象呢?
👉 这时就用到了 this 指针。
🧩 原理解释
编译器会在每个成员函数中,默认加上一个隐藏的形参:
void SetName(Person* const this, string name);
所以在函数内部访问成员变量时,本质是:
this->_name = name;
你可以手动写 this 来强调当前对象:
void Print() {
cout << this->_name << endl;
}
⚠️ 注意:this 只能在类的成员函数中使用。
| 概念 | 说明 |
|---|---|
| class | 定义类的关键字 |
| 成员变量 | 类的数据(属性) |
| 成员函数 | 类的行为(方法) |
| 访问限定符 | 控制类成员的可见性 |
| 实例化 | 用类创建对象的过程 |
| this 指针 | 指向当前对象的隐藏指针 |
2582

被折叠的 条评论
为什么被折叠?



