引言

最近在写代码时突然遇到这个问题 且CSDN上没有找到解答 遂在解决问题后发布一篇博客记录 同时帮助有同样问题的朋友

首先来看一段代码

namespace NS{class Quote{};void display(const Quote&){cout << "Linux\n";}
}class Bulk : NS::Quote{};int main(){Bulk book1;display(book1);return 0;
}

因为函数作用域的查找规则是先根据参数的命名空间来作为第一层标准 所以我们的display不需要增加作用域解析运算符 这段代码代码应该是没有问题的 但是出现了这样一句错误

‘NS::Quote’ is an inaccessible base of ‘Bulk’

也就是说基类是无法被访问的 为什么呢 原因就是
在私有继承和保护继承时基类指针(引用)无法指向派生类 而class声明的类默认继承方式为private 所以出现了我们上述的问题

namespace NS{class Quote{};void display(const Quote&){cout << "Linux\n";}
}class Bulk : public NS::Quote{};int main(){Bulk book1;display(book1);return 0;
}

解决方案也很简单 就是显式的把继承声明为公有继承即可 这类问题出现的大多数原因就是忽略了默认的继承方式 同时也告诉我们显示的指出其实并不麻烦 反而使得程序的可读性与安全性得到提升 所以需要多加注意才好

‘A’ is an inaccessible base of ‘B’解决方案相关推荐

  1. Linux安装Apache报错:Cannot find a valid baseurl for repo: base/7/x86_64解决方案

    Linux安装Apache报错:Cannot find a valid baseurl for repo: base/7/x86_64解决方案 参考文章: (1)Linux安装Apache报错:Can ...

  2. mac安装conda后,终端的用户名前面有一个(base),最佳解决方案

    mac安装了conda后,前面会有一个(base),很烦人,终于找到最佳解决方案了: $ conda config --set auto_activate_base false 原因: 安装conda ...

  3. Linux下的Cannot find a valid baseurl for repo: base/7/x86_64问题记载

    Linux学习安装docker记载 1.安装尝试安装docker出现Cannot find a valid baseurl for repo: base/7/x86_64问题 [root@localh ...

  4. word2vec应用场景_Embedding在腾讯应用宝的推荐实践

    作者:carloslin,腾讯 PCG 应用研究员 Embedding 技术目前在工业界以及学术界中应用非常广泛,关于 Embedding 的探索和应用从未停歇.Embedding 的训练方法主要分成 ...

  5. C2248编译错误的原因和解决--VC6向VC7.1迁移真是累死人,N多编译错误

    把以前VC6先写好的类加入VC7中,编译时竟然错误多到编译器无法接受而停止,hooooo.真的好烦,要是有个工具修改外加的.h和cpp文件就好了... 遇到最多的是C2248编译错误,才发现VC7提升 ...

  6. Embedding在腾讯应用宝的推荐实践

    作者:carloslin,腾讯 PCG 应用研究员 Embedding 技术目前在工业界以及学术界中应用非常广泛,关于 Embedding 的探索和应用从未停歇.Embedding 的训练方法主要分成 ...

  7. 如何判断derived-to-base conversion是否legal

    我们知道,在类内的access specifier public .protected.private都只是为了限定用户程序对类内的访问权限,而在继承list中的access specifier则是影 ...

  8. 派生类类型可以转换为基类类型,反之则不行

    派生类的对象都含有基类对象作为其一部分,我们可以将指向派生类型的引用转换为指向它的基类型的引用,像转换指针一样,我们可以用派生类的对象初始化或赋值基类对象,反之却不行.class base{ publ ...

  9. Effective C++: 06继承与面向对象设计

    32:确定你的public继承塑模出is-a关系 以C++进行面向对象编程,最重要的一个规则是:public继承表示的是"is-a"(是一种)的关系. 如果令class D以pub ...

最新文章

  1. 51单片机串口通信(字符串接收和发送)
  2. Winform中实现ZedGraph曲线图缩放后复原功能
  3. 五、Hive数据类型和简单使用
  4. 云顶之弈服务器维修,云顶之奕云服务器
  5. foreach 实现 MyBatis 遍历集合与批量操作数据
  6. 只需几分钟跟小猫学前端(内含视频教程):nodejs基础之用express、ejs、mongdb建设简单的网站...
  7. 第三课 SVM(2)
  8. Vue.js项目中,当图片无法显示时则显示默认图片
  9. rabbitmq官方文档
  10. python pandas 教程下载_如何用Python处理Excel?Pandas视频教程官方文档来啦~
  11. 【读书笔记】合理的设计
  12. 关于癌症的思考:癌症的本质是什么
  13. android 手机网络可以连上,wifi连上后访问不了服务器,Nexus连接WiFi成功,但提示“已连接 但无法访问互联网”...
  14. 胃肠道微生物与癌症有关
  15. 高通 Hexagon V65 HVX 编程参考手册(1)
  16. PowerSI提取S参数(插损、回损、串扰分析)
  17. 利用手机工具教你快速完成英语翻译在线翻译中文
  18. 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)...
  19. 泰拉瑞亚手机版html,泰拉瑞亚提基套装怎么得 提基套装属性详解
  20. 荣耀手表es鸿蒙,荣耀手表ES评测:方形大屏+轻盈机身,599元腕上健康全能管家...

热门文章

  1. docker下安装RocketMQ
  2. 一次Java内存泄漏调试的有趣经历
  3. SM8S33、TVS瞬态抑制二极管在汽车上的问题与应用
  4. 易基因|宏病毒组测序技术介绍
  5. uniapp项目的经验
  6. 什么是DOM及DOM操作?
  7. 卡尔曼滤波器(目标跟踪一)(上)
  8. Sublime Text最好的中文教程
  9. 三个多月,被现实雪藏了的锐气
  10. 使用Golang模板拼sql(及校验)