首页  >   经验  >   被我们忽略的一种类重载的实现方式,很巧妙的实现方式

被我们忽略的一种类重载的实现方式,很巧妙的实现方式

查看 codexia 的博客 2015-06-26 21:28:52 1768
   重载  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介说实在的,我非常乐意讨论这些设计实现,可以让我领略到精彩思维的火花。在我自己的写文章论述的过程中,还会迸发更多的火花,非常享受在论述时大脑飞转的感觉。毕竟,人最重要的就是思维(思想了),不是吗?

    之前写过一篇文章《C++重载:横向重载(静态重载)与纵向重载(动态重载)》 ,描述的是两种方式的重载。说是横向重载和纵向重载,实则是在重载原理方向的的理解。而在运动状态中,我们也把横向重载称为静态重载,而把纵向重载称为动态重载。因为横向重载需要事先写好重载的函数,编译时确定。而纵向重载,依靠虚函数机制,通过虚表,在运行时基类指针查询虚表得到派生类重载的函数。
    以上一段话就是对重载的文章的简要总结。今天要讨论的是在这个基础之上的论题。如果重载基础不过关,先看C++重载这篇文章。
    在此,我得首先感谢一位朋友,杨建(380200622)。不知道贴出QQ是否合适,如果不合适,请跟我说一声。因为他在看到我的C++重载的文章后,发现文章少了一种实现方式。我顿时来了兴趣,我也很好奇,难道是我看漏还是新标准的语法呢?通过聊了一会,让我意识到,我确实漏掉了这些知识,一番讨论之后,让我大受裨益,很是感谢。在我的技术知识库中,又添加了一笔财富。说实在的,我非常乐意讨论这些设计实现,可以让我领略到精彩思维的火花。在我自己的写文章论述的过程中,还会迸发更多的火花,非常享受在论述时大脑飞转的感觉。毕竟,人最重要的就是思维(思想了),不是吗?
    前面的这篇重载的文章,实际上是讲的重载的原理。而现在要讨论的这个问题,实际上并不是第三种重载,而是实现上的技巧。
    在重载的原理中,只有这两种,没有第三种。我们要讨论的是一种比较不常见的一种实现方式。这种方式在有些时候非常有用。下面我先说说它使用的场合,有些朋友认为这个实现没什么用。哲学里有一句话叫做“存在的就是合理的”。我相信这一句话,所以,我仔细想了一下这个实现方式,试图去找出实现的目的和实现的原理基础。经过各种猜想和验证,本文便是对我思考后的一个总结,分享给大家。
    先说说应用场景,再介绍这种方式。结合实际的项目开发,我们来看看。假如我们从网上得到一个类,解决某个技术的专用类。因为是个人所写,也不是商业类,所以只是自己用用,然后感觉挺好,就将之打包成dll,分发到网上供大家使用。这种情况太常见了。我以前也写过一个基于ADO封装的数据库操作库,也打包成dll,分享到网上了。为了大家方便使用,我已经将源码都发表在C++技术网的数据库板块中了。第一个篇文章是《ADO数据库编程:公共变量、结构体和函数声明》,其他的就可以顺着这篇文章找到。
    这里我就要说明一种情况。因为一般个人发布的这些类,也不会考虑到二次开发之类的,也为了简单,也不会使用复杂的继承,也没打算让别人从发布的类中派生使用等。这也就有一个问题。如果提供的类中,一个方法是无参的,并没有提供有参数的。但是这个无参数的函数非常常用,经常会用到。但是你要用一个有参数的,可以实现你自己的方式。因为没有源码,你无法更改提供的类。你从提供的类中继承,你既想直接使用提供的类的无参函数,又要自己实现一个有参的版本。此时问题就来了。
  &

1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 9L:,h 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:被我们忽略的一种类重载的实现方式,很巧妙的实现方式
文章地址:http://www.cjjjs.com/article/6262015522821399
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:被我们忽略的一种类重载的实现方式,很巧妙的实现方式
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. Redis数据类型和基本的操作命令 查找全网同类文章
  2. C++ Primer Plus 6th 4.12 复习题 第8题 结构体类型声明 查找全网同类文章
  3. C++ Primer Plus 6th 4.12 复习题 第2题 用array模板类声明变量 查找全网同类文章
  4. C++ Primer Plus 6th 3.6 复习题 第10题 auto自动推导变量类型 查找全网同类文章
  5. IPv4地址划分精简整理 查找全网同类文章
  6. int转为unsigned char类型的警告的分析和解决办法 查找全网同类文章
  7. 关于父子对象相互赋值以及多态特性的分析:5 用父类指针接受子类对象的理解 查找全网同类文章
  8. 关于父子对象相互赋值以及多态特性的分析:4 构建多态特性三要素的理解 查找全网同类文章
  9. 关于父子对象相互赋值以及多态特性的分析:3 子类和父类对象相互转化的理解 查找全网同类文章
  10. 关于父子对象相互赋值以及多态特性的分析:2 父类对象赋值给子类对象的理解 查找全网同类文章
分享到:
分享文章[被我们忽略的一种类重载的实现方式,很巧妙的实现方式]到QQ空间

相关阅读

猜您感兴趣