1. 从C到C++的思维转变
当我第一次从C语言转向C++时,最困惑的就是"类"这个概念。C语言是面向过程的,我们关注的是函数和数据的分离;而C++引入了面向对象的思想,这不仅仅是语法上的改变,更是一种编程范式的转变。
在C语言中,我们这样定义一个矩形结构体:
c复制struct Rectangle {
int width;
int height;
};
int area(struct Rectangle r) {
return r.width * r.height;
}
而在C++中,我们可以这样定义类:
cpp复制class Rectangle {
public:
int width;
int height;
int area() {
return width * height;
}
};
这个简单的例子展示了面向对象的核心思想:将数据和对数据的操作封装在一起。数据(width和height)和操作它们的方法(area())现在属于同一个实体——Rectangle类。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 类的定义与实现细节
2.1 类的基本结构
一个完整的类定义通常包含以下几个部分:
cpp复制class ClassName {
private:
// 私有成员,只能在类内部访问
int privateVar;
protected:
// 受保护成员,可以在派生类中访问
int protectedVar;
public:
// 公有成员,可以在任何地方访问
int publicVar;
// 构造函数
ClassName() {
// 初始化代码
}
// 成员函数
void memberFunction() {
// 函数实现
}
// 析构函数
~ClassName() {
// 清理代码
}
};
2.2 访问控制的重要性
访问控制是封装的关键。在实际开发中,我建议遵循以下原则:
- 所有数据成员都应该设为priva
