在C++中,私有成员通过private关键字定义,仅类内成员和友元可访问,实现封装;class默认成员为private,struct为public。

在C++中,定义私有成员是通过访问修饰符 private 实现的。类中的私有成员只能被该类的成员函数和友元函数访问,外部代码无法直接访问。
使用 private 关键字定义私有成员
在类(class)内部,使用 private: 关键字来声明后续成员为私有成员。通常将数据成员设为私有,以实现封装和数据隐藏。
- 私有成员可以是变量(字段)或函数(方法)
- private 后面的所有成员直到下一个访问修饰符(如 public 或 protected)都属于私有
- struct 中默认访问级别是 public,而 class 中默认是 private
示例代码:
class Person {
private:
std::string name;
int age;
// 私有成员函数
bool isValidAge(int a) {
return a >= 0 && a <= 150;
}
public:
void setAge(int a) {
if (isValidAge(a)) {
age = a;
}
}
int getAge() const {
return age;
}
};
推荐做法:私有数据 + 公有接口
良好的面向对象设计通常将数据成员设为私有,提供公共的 getter 和 setter 方法来安全地访问和修改数据。
立即学习“C++免费学习笔记(深入)”;
- 防止外部非法赋值
- 便于后期添加验证逻辑或日志
- 提高代码的可维护性和安全性
注意事项
虽然 private 成员不能直接访问,但可以通过友元(friend)机制让特定函数或类访问私有成员。
class Secret {
private:
int code;
public:
friend void helper(Secret& s); // 友元函数可访问私有成员
};
void helper(Secret& s) {
s.code = 123; // 合法:友元函数可以访问私有成员
}
基本上就这些。使用 private 定义私有成员是C++封装特性的核心实践之一,合理使用能有效提升代码质量。











