1. 类的基本概念与定义
1.1 类的定义语法
在C++中,类(class)是面向对象编程的核心概念。一个类可以看作是一种用户自定义的数据类型,它封装了数据(成员变量)和操作这些数据的函数(成员函数)。下面是一个典型的类定义示例:
cpp复制class Stack {
public:
void Init(int n = 4) {
// 初始化代码
}
private:
int* array;
};
这里有几个关键点需要注意:
class是定义类的关键字,Stack是类名- 类体用大括号
{}包围,结尾必须有分号 - 类内部可以包含成员变量(如
array)和成员函数(如Init)
提示:类定义结尾的分号经常被初学者遗忘,这会导致编译错误。养成习惯在写完类定义后立即输入分号。
1.2 成员变量命名惯例
虽然C++没有强制规定成员变量的命名方式,但业界有一些常见约定:
cpp复制class Date {
public:
void Init(int year, int month, int day) {
m_year = year; // m_前缀
_month = month; // _前缀
day_ = day; // _后缀
}
private:
int m_year;
int _month;
int day_;
};
这些命名方式的目的都是为了区分成员变量和局部变量/参数。选择哪种风格取决于团队规范,但重要的是保持一致性。
1.3 struct与class的区别
C++中struct也可以用来定义类,它与class的主要区别在于默认访问权限:
cpp复制struct ListNode { // 默认public访问
void Init(int x) {
val = x;
}
int val;
};
class ListNode { // 默认private访问
void Init(int x) {
val = x;
}
int val;
};
在实际开发中:
- 如果只需要一个简单的数据聚合体,使用
struct - 如果需要完整的面向对象特性(封装、继承等),使用
class
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 访问控制与类作用域
2.1 访问限定符详解
C++提供了三种访问限定符来控制成员的可见性:
cpp复制class Example {
public: // 类外可直接访问
int publicVar;
prote
