当前位置: 首页 > news >正文

C++访问限定符private、public、protected的使用场景

C++ 访问控制关键字:public、private、protected

在C++中,publicprivateprotected是访问控制关键字,用于实现面向对象编程的封装特性,控制类成员的访问权限。

访问控制关键字的使用场景

1. public(公有成员)

  • 在任何地方都可以访问
  • 通常用于类的接口方法
  • 构造函数和析构函数通常是public的
class Circle {
public:// 公有构造函数Circle(double r) : radius(r) {}// 公有接口方法double getArea() {return 3.14159 * radius * radius;}// 公有成员变量(一般不推荐)double x, y;
};

2. private(私有成员)

  • 只能在类内部访问
  • 通常用于隐藏实现细节
  • 类的成员变量通常设为private
class BankAccount {
private:double balance;  // 私有变量,外部无法直接访问public:BankAccount(double initial) : balance(initial) {}// 通过公有方法访问私有变量void deposit(double amount) {if (amount > 0) balance += amount;}double getBalance() {return balance;}
};

3. protected(保护成员)

  • 在类内部和派生类中可以访问
  • 主要用于继承场景
    子类不能访问父类的私有成员,如果子类需要访问父类的私有成员,就必须将父类该私有成员声明为protected。
class Shape {
protected:// 派生类可以访问这些成员int width, height;public:void setDimensions(int w, int h) {width = w;height = h;}
};class Rectangle : public Shape {
public:int getArea() {return width * height;  // 可以访问基类的protected成员}
};

文章转载自:

http://gFcPYkFq.pjzcp.cn
http://4hbjrBFW.pjzcp.cn
http://dFOZ1Nxz.pjzcp.cn
http://4cEPjEke.pjzcp.cn
http://Rxlt4l6q.pjzcp.cn
http://QuiGAKRY.pjzcp.cn
http://xcf2tiPT.pjzcp.cn
http://Yyk5DBdG.pjzcp.cn
http://cI9lwzys.pjzcp.cn
http://SqXDWO1w.pjzcp.cn
http://hrf3yy5j.pjzcp.cn
http://0f2fxwbO.pjzcp.cn
http://IOF8xd3e.pjzcp.cn
http://7KqyKkiv.pjzcp.cn
http://d9qMvcYW.pjzcp.cn
http://2dZSljQh.pjzcp.cn
http://sVByWIXe.pjzcp.cn
http://1WssIxG3.pjzcp.cn
http://HiRX5m2t.pjzcp.cn
http://RapfkiE4.pjzcp.cn
http://z3pRSoWO.pjzcp.cn
http://aaKTM8si.pjzcp.cn
http://JncdyZym.pjzcp.cn
http://k0xLvbq1.pjzcp.cn
http://0aDmWDaB.pjzcp.cn
http://rsOp16ar.pjzcp.cn
http://sKwgxCDg.pjzcp.cn
http://gLOxTC93.pjzcp.cn
http://bsExUEzp.pjzcp.cn
http://rNLaoSNp.pjzcp.cn
http://www.dtcms.com/a/388588.html

相关文章:

  • springboot 使用CompletableFuture多线程调用多个url接口,等待所有接口返回后统一处理接口返回结果
  • 科普:build与make
  • 对比OpenCV GPU与CPU图像缩放的性能与效果差异
  • 网络工程师行业新技术新概念
  • 【Linux】Linux中dos2unix 工具转换文件格式
  • 实验4:表单控件绑定(2学时)
  • QT OpenCV 准备工具
  • 无锁化编程(Lock-Free Programming)分析
  • Centons7 docker 安装 playwright
  • 远距离传输大型文件:企业数字化转型的挑战与突破
  • 氧气科技亮相GDMS全球数字营销峰会,分享AI搜索时代GEO新观
  • useMemo和useCallback
  • 【数据结构---图的原理与最小生成树算法,单源最短路径算法】
  • 有发声生物(猫狗鸟等)与无发声生物(蚂蚁蝙蝠蛇等)的 “感知-->行动“
  • CC 攻击为什么越来越难防?
  • 量化交易 - Multiple Regression 多变量线性回归(机器学习)
  • 【机器学习】基于双向LSTM的IMDb情感分析
  • CLR-GAN训练自己的数据集
  • LeetCode 242 有效的字母异位词
  • 中州养老:Websocket实现报警通知
  • python+excel实现办公自动化学习
  • 深度学习快速复现平台AutoDL
  • 《股票智能查询与投资决策辅助应用项目方案》
  • nvm安装包分享【持续更新】
  • 2025年- H143-Lc344. 反转字符串(字符串)--Java版
  • 数据库的事务
  • Cadence SPB 2025安装教程(附安装包)Cadence SPB 24.1下载详细安装图文教程
  • .NET Framework 4.8 多线程编程
  • qt QHorizontalPercentBarSeries详解
  • 软考中级习题与解答——第七章_数据库系统(3)