1、考虑下面的场景,有个类模版template<typename T> Box{}; 内部有个方法XXX,现在子类template<typename T> class BigBox:public Box<T>{},BigBox内部使用方法XXX,考虑出现什么问题?

2、首先一点,类模版产生出来的类之间,没有关系。也就是Box<Book> 与Box<Dog>没有关系。通过指定模版实参,可以产生不同的模板类,也可以全特化一个类,如下:

  template <>

  class Box<Cat>{...},这种情况下,就不再实例化模版类了,Box<Cat>可以声明自己的接口,可能就没有了XXX。那么,问题出现了,BigBox继承Box<T>,但是父类Box<T>可能有接口XXX,也可能没有接口XXX,编译器傻眼了。那么还要不要继承父类Box<T>的XXX方法呢?因为不确定一定有,所以不继承,导致上面的情况编译失败。

3、怎么解决?

  解决办法很简单,就是明确说,我要继承父类Box<T>的方法。

  a、使用this->XXX();

  b、使用using Box<T>::XXX;

  c、使用Box<T>::XXX();

  第三种办法不好,因为会关闭virtual绑定行为。

【43】学习处理模版化基类内的名称相关推荐

  1. C++编程进阶6(public继承与组合、private继承、多重继承、处理模板基类内的名称、如何避免模板代码膨胀)

    二十一.public继承与组合 public继承是是子类对象is a基类对象的关系,比如QT中的所有组件类都要继承QObject,所以所有的QT组件都是一个QObject. 而组合是has a(包含) ...

  2. java体系的四大基类_Java中的io流学习(了解四大基类和基本步骤)

    Java中io流四大基类及io流操作四大基本步骤 io流:(input/output)即输入输出流.面向对象的思想之一是面向接口编程,面向父类编程,也就是多态.所以学好基类(父类)很重要. 分类 按处 ...

  3. C++学习 对象模型之虚基类,虚基类表,虚基类表指针

    1.虚基类 什么是虚基类,虚基类的作用是什么? 首先虚基类是为了解决多继承产生的二义性问题,范例代码如下: #include "stdafx.h" #include <std ...

  4. 二,控件学习--2.控件基类-QObject

    学习计划 功能作用 1.对象名称,属性. 应用场景 进行控件样式的分组管理 from PyQt5.Qt import *class Window(QWidget):def __init__(self) ...

  5. Python:抽象基类(abc模块)

    抽象基类(abc模块) 介绍 白话理解 实用场景 介绍 该模块提供了一个元类 ABCMeta,可以用来定义抽象类,另外还提供一个工具类 ABC,可以用它以继承的方式定义抽象基类. 装饰器以" ...

  6. 【选择恐惧症】接口?虚基类?

    [选择恐惧症]接口?虚基类? 症前兆 症分析 症解答 症总结 症前兆 记得有个朋友跟我讨论过这样的一个问题,说到他刚刚学习接口和虚基类的相关知识时觉得很迷茫,不知道什么时候该用接口,什么时候该使用虚基 ...

  7. Python学习笔记28:从协议到抽象基类

    Python学习笔记28:从协议到抽象基类 今后本系列笔记的示例代码都将存放在Github项目:https://github.com/icexmoon/python-learning-notes 在P ...

  8. 在保护继承中基类的共有成员_C++学习大纲:继承方式的调整

    C++ 继承方式的调整 在任何继承方式中,除了基类的private成员外,都可以在派生类中分别调整其访问控制. 调整格式 [public: | protected: | private: ] :: ; ...

  9. C++ 学习 ::【基础篇:17】:C++ 类与对象:运算符重载介绍、运算符重载函数(类内与类外区别)写法及简单设计实现

    本系列 C++ 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C++ 学习系列将分为三个阶段:基础篇.STL 篇.高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C++的三大特 ...

  10. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

最新文章

  1. html5 graphics with svg css3,HTML5 GRAPHICS WITH SVG AND CSS3
  2. 节省两倍开发时间,Java静态方法还可以这么玩
  3. Bitcoin ABC和区块上限——通过技术实现更大的区块
  4. 2019寒假作业二:PTA7-1币值转换
  5. nyoj--891--找点(贪心)
  6. SQL数据导入导出问题总结
  7. Java 并发---ConcurrentHashMap
  8. dubbo-admin管理平台搭建
  9. ssh-copy-id配置rsync免密访问并rsync同步
  10. windows安装grafana
  11. xcode 不能选择模拟器
  12. HttpClient 4.5.3 模拟登陆CSDN
  13. 计算机网络 MOOC 哈尔滨工程大学 pdf课件
  14. FIB聚焦离子束系统常见的应用场景
  15. SPSS学习资料汇总
  16. oracle按相同年份_英语表达方式有几个类型,时间和日期表达都是不相同的
  17. 无线通信与生活-(1)
  18. MATLAB 中的 mod() 函数
  19. keil5工程 AC5 编译器升级 AC6编译器
  20. 最适合跑步用的耳机有哪些、精选五款最优秀的跑步耳机推荐

热门文章

  1. Atitit 并发锁机制 艾提拉总结 目录 1. 2. 用的比较频繁锁 2 1.1. 语法锁sync api锁 2 1.2. 数据库标志位锁 2 1.3. 文件锁 2 2. 锁得类型 3 2 2.
  2. Atitit .jvm 虚拟机指令详细解释
  3. Atitit. 单点登录sso 的解决方案 总结
  4. paip.c#.nett 系统托盘动态图标闪烁图标
  5. 解密游走于法律边缘的爬虫技术
  6. 创金合信: 做的这些事
  7. 知乎:招投标中评标方式有几种?
  8. Julia :where
  9. 最新消息!阿里宣布延迟复工,字节跳动、腾讯......等企业也再次延迟!
  10. apollo代码修改配置_灰度实战(四):Apollo配置中心(4)