一、类定义格式
类定义的基本格式:
在 C++ 中,使用 class 关键字来定义类,其基本格式如下:
class Stack // class 为定义类的关键字,Stack 为类名 {
// 左大括号表示类体的开始
// 类体内容
}; // 右大括号后的分号不能省略,这是类定义结束的标志
类的成员:
类体中包含的内容统称为类的成员,主要分为两类:
- 成员变量(属性):类中定义的变量,用于描述对象的状态
- 成员函数(方法):类中定义的函数,用于描述对象的行为
成员变量的命名规范:
为了便于区分成员变量与局部变量,业界通常采用以下命名惯例(非强制要求,具体遵循所在团队的编码规范):
- 在成员变量名前加下划线,如:
_top、_size - 在成员变量名后加下划线,如:
top_、size_ - 以"m"开头命名,如:
mTop、mSize
struct 与 class 的关系:
在 C++ 中,struct 也被升级为类,主要体现在:
- 兼容 C 语言中
struct的传统用法 - 扩展功能:
struct中可以定义成员函数 - 主要区别:默认访问权限不同(
struct默认为 public,class默认为 private)
虽然 struct 也能定义类,但通常推荐使用 class 关键字来定义类,这样更能体现面向对象的封装特性。
成员函数的默认特性:
定义在类体内的成员函数默认会被编译器当作内联函数(inline)处理,这有助于提高短小函数的调用效率。
二、访问限定符
访问限定符与封装
C++ 通过访问限定符来实现面向对象的封装特性。封装将对象的属性(成员变量)和方法(成员函数)结合在类内部,并通过访问权限控制,有选择性地向外部使用者暴露接口,隐藏内部实现细节。
三种访问限定符
- public(公有):修饰的成员在类内外都可以直接访问,通常用于对外提供的接口
- protected(保护):修饰的成员在类外不能直接访问,但在派生类(子类)中可以访问
- private(私有):修饰的成员仅在当前类内部可以访问,类外部和派生类都不能直接访问
注:在继承章节之前,protected 和 private 的表现相同,都是类外不可访问;只有在涉及继承时,两者的区别才会体现出来——protected 成员可以被派生类访问,而 private 成员不能。
访问权限的作用域规则
- 访问限定符的作用域从该限定符出现的位置开始,直到下一个访问限定符出现时结束
- 如果某个访问限定符之后没有其他访问限定符,其作用域将持续到类定义结束的右大括号
}
默认访问权限

