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

子类(派生类)使用父类(基类)的成员

在 C++ 中,子类(派生类)是否可以直接使用父类(基类)的成员,取决于以下几个因素:成员的访问权限(public、protected、private)、继承方式(public、protected、private)以及子类访问成员的方式。

C++ 继承和访问权限的基本规则

在 C++ 中,类的成员(变量、函数等)有三种访问权限:

  • public:任何地方都可以访问(包括子类、外部代码)。
  • protected:只有类本身、子类及其友元可以访问。
  • private:只有类本身及其友元可以访问,子类无法直接访问。
#include <iostream>class Base {
public:int public_member = 1;
protected:int protected_member = 2;
private:int private_member = 3;
public:int get_private_member() const { return private_member; } // 提供间接访问
};class Derived : public Base {
public:void print_members() {std::cout << "public_member: " << public_member << std::endl;     // 直接访问std::cout << "protected_member: " << protected_member << std::endl; // 直接访问// std::cout << "private_member: " << private_member; // 错误:无法直接访问std::cout << "private_member (via getter): " << get_private_member() << std::endl; // 间接访问}
};int main() {Derived d;d.print_members();return 0;
}

http://www.xdnf.cn/news/1346563.html

相关文章:

  • 快速了解神经网络
  • AI赋能体育训练突破:AI动作捕捉矫正精准、战术分析系统提效率,运动员破瓶颈新路径
  • 数据结构之深入探索归并排序
  • go 常见面试题
  • NLP学习之Transformer(2)
  • 网络编程6(JVM)
  • 保护 PDF 格式:禁止转换为其他格式文件
  • html基本元素
  • C#_接口设计:角色与契约的分离
  • HTML5详篇
  • 自定义单线通信协议解析
  • Yapi中通过MongoDB修改管理员密码与新增管理员
  • 【Java后端】 Spring Boot 集成 Redis 全攻略
  • 软件设计师——计算机网络学习笔记
  • 华为网路设备学习-29(BGP协议 四)路由策略-实验
  • 分段渲染加载页面
  • 【LeetCode 热题 100】139. 单词拆分——(解法一)记忆化搜索
  • 浏览器开发CEFSharp+X86+win7(十三)之Vue架构自动化——仙盟创梦IDE
  • STM32F1 EXTI介绍及应用
  • 光耦合器:电子世界的 “光桥梁“
  • ZYNQ启动流程——ZYNQ学习笔记11
  • X00238-非GNSS无人机RGB图像卫星图像视觉定位python
  • 25年8月通信基础知识补充1:中断概率与遍历容量、Sionna通信系统开源库、各种时延区分
  • Android 16环境开发的一些记录
  • Prometheus+Grafana监控redis
  • 制造企业用档案宝,档案清晰可查
  • 81 柔性数组造成的一些奇怪情况
  • 农业-学习记录
  • 关于 WebDriver Manager (自动管理浏览器驱动)
  • 当下一次攻击发生前:微隔离如何守护高敏数据,防范勒索攻击下的数据泄露风险!