private成员仅本类及友元可访问,public成员对所有代码开放;class默认private,struct默认public;设计上private保障数据安全,配合public接口实现封装。
private 和 public 是 C++ 中最基础的两个访问修饰符,它们的核心区别在于:谁可以访问类内部的成员(变量或函数)。
private 成员只能被本类的成员函数和友元(friend)访问,类外部、派生类(子类)都不能直接访问;public 成员则对所有人开放——类
内、类外、派生类都可以自由访问。
private 不是“藏起来不让看”,而是为了控制数据修改入口,保证对象状态的一致性和安全性。比如银行账户余额,不能让外部随意赋值,必须通过 deposit() 或 withdraw() 这类受控操作来改变。
public 继承时,基类的 public 成员在派生类中仍是 public,private 成员则不可见;但 private 成员在派生类中依然存在,只是无法直接访问。
class 定义中,如果不写访问修饰符,所有成员默认是 private;而 struct 默认是 public。这点常被初学者误用,导致意外的访问限制或暴露。
基本上就这些。掌握好 private 和 public 的边界,是写出安全、可维护 C++ 类的第一步。