C++ - 派生类访问模板化基类(templatized base class)的命名

来源:互联网 发布:星际战甲人物捏脸数据 编辑:程序博客网 时间:2024/05/22 03:42

派生类访问模板化基类(templatized base class)的命名


本文地址: http://blog.csdn.net/caroline_wendy/article/details/23993691


派生类继承模板化基类成员函数, 默认是无法访问, 模板化基类的命名. 

原因模板的定制化有可能取消某些函数, 为了能在编译期检测出错误, 所以默认无法访问.


派生类访问模板化基类, 包含三种方法:

1. 调用基类函数时, 使用"this->", 指明调用的类, 是本类, 在编译时, 可以进行检查;

2. 使用using声明式, 可以把基类的函数引入派生类, 在编译时, 可以进行检查;

3. 使用显示修饰(explicit qualification), 不推荐, 显示修饰会屏蔽virtual的动态绑定;


本例为: 派生类, 调用基类的函数, 重写修改格式, 进行输出;


代码:

/* * test.cpp * *  Created on: 2014.04.18 *      Author: Spike *//*eclipse cdt, gcc 4.8.1*/#include <iostream>#include <string>#include <memory>using namespace std;class CompanyCaroline {public:void sendCleartext(const std::string& msg) {std::cout << "Cleartext: " << msg << std::endl;}void sendEncrypted(const std::string& msg) {std::cout << "Encrypted: " << msg << std::endl;}};struct MsgInfo {std::string cleartext;std::string encrypted;};template<typename Company>class MsgSender {public:void sendClear(const MsgInfo& info) {std::string msg = info.cleartext;Company c;c.sendCleartext(msg);}void sendSecret(const MsgInfo& info) {std::string msg = info.encrypted;Company c;c.sendEncrypted(msg);}};template<typename Company>class LoggingMsgSender : public MsgSender<Company> {public://using MsgSender<Company>::sendClear; //方法二void sendClearMsg(const MsgInfo& info) {std::cout << "Log Begin : ";//sendClear(info);this->sendClear(info); //方法一//MsgSender<Company>::sendClear(info); //方法三, 会关闭虚绑定的行为, 不建议}};int main() {MsgInfo mi = {"Clear", "Encrypted"};LoggingMsgSender<CompanyCaroline> lms;lms.sendClearMsg(mi);return 0;}

输出:

Log Begin : Cleartext: Clear



3 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 汽车前牌照丢失怎么办 有人套我车牌怎么办 在本地怎么办外地车牌 二手车卖了车牌怎么办 科目四预约失败怎么办 车子过户了车牌怎么办 检车没有保险怎么办 异地超速12分怎么办 驾驶证考试过期了怎么办 买了库存车怎么办 车龄长了油耗高怎么办 新车发现补过漆怎么办 魅蓝note3内存不足怎么办 汽车安全检测证怎么办 a证被扣12分怎么办 突发事作后事故单位怎么办 如果遇到突发事故怎么办? 班级遇到突发事故怎么办 高速上出车祸怎么办? 安卓车载中控大屏卡怎么办 车辆交通信息卡怎么办 成都焊工压力容器证怎么办 天车钢丝绳绞住怎么办 受伤了怎么办安全教案 复读后学籍档案怎么办 开车就是开不好怎么办 货车提不了档案怎么办 二手车档案丢了怎么办 车辆档案丢了怎么办 手续跟车都丢了怎么办 二手车无法核档怎么办 高尔夫6天窗漏水怎么办 司机违章辞职了怎么办 年检可以推迟了怎么办? 汽车年审推迟了怎么办 机动车2年年检怎么办 教育局不给退学怎么办 没上火车票丢失怎么办 劳动局被收买了怎么办 醉驾单车事故怎么办 长沙市怎么办未孕证明