C++private与public区别_C++访问修饰符深度解析

admin 百科 12
private成员仅本类及友元可访问,public成员对所有代码开放;class默认private,struct默认public;设计上private保障数据安全,配合public接口实现封装。

C++private与public区别_C++访问修饰符深度解析-第1张图片-佛山资讯网

privatepublic 是 C++ 中最基础的两个访问修饰符,它们的核心区别在于:谁可以访问类内部的成员(变量或函数)。

访问权限范围不同

private 成员只能被本类的成员函数和友元(friend)访问,类外部、派生类(子类)都不能直接访问;public 成员则对所有人开放——类内、类外、派生类都可以自由访问。

  • 比如定义一个类 Person,把 age 设为 private,外部代码写 p.age = 25; 就会编译报错
  • 而把 getName() 设为 public,就能在 main() 里正常调用:p.getName();

设计意图与封装原则

private 不是“藏起来不让看”,而是为了控制数据修改入口,保证对象状态的一致性和安全性。比如银行账户余额,不能让外部随意赋值,必须通过 deposit() 或 withdraw() 这类受控操作来改变。

  • 典型做法:把数据成员设为 private,配套提供 public 的 getter/setter 函数
  • 这样可以在 setter 中加入校验逻辑,比如禁止设置负数年龄
  • 后续如果内部实现换算法或加缓存,只要接口不变,外部代码完全不用改

继承中的行为差异

public 继承时,基类的 public 成员在派生类中仍是 public,private 成员则不可见;但 private 成员在派生类中依然存在,只是无法直接访问。

标签: ai c++ 区别 代码可读性

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~