本文讲解内容的前提是派生类继承基类的方式是公有继承,关键字public以下程序为讲解用例。 1 #include 2 using namespace std; 3 4 class A 5 { 6 public: 7 A(int m1, int n1):m(m1), n(n1){} 8 ...
分类:
编程语言 时间:
2014-08-05 13:33:09
阅读次数:
296
此问题来源于网络封装的一个内容,由于保密的问题,我只叙述我业余的一些想法。
基本思想:
网络请求大家应该都会用一个基类的BaseNetWork, 然后由派生类继承于BaseNetWork,并实现一些特殊的方法。 一般标准的流程是传入block, 当网络请求完毕后,通过block回调回来。这里叙述的关键不是如何实现一个网络请求和回调block的相关内容,而是如何取消请求。 一般基类会实现...
分类:
其他好文 时间:
2014-08-04 17:56:27
阅读次数:
226
如何写一个对扩展开发对修改关闭的推送消息处理中心?
前一段时间做的推送消息处理,总是要根据不同的消息类型,进入到不同的消息处理流程中。由于消息处理流程的总体框架大同小异,只是具体的很小的一块代码不同。 于是很容易想到使用模板方法模式基类写框架流程,派生类负责具体的实现。
需要有三个类:
LPPushDispatchCenter: 消息处理中心类
LPPushDispatch :消息...
分类:
其他好文 时间:
2014-08-04 14:25:27
阅读次数:
187
1.虚指针和虚函数表 1.1不含有任何数据成员或者虚函数的class或者struct大小为1,含有虚函数的对象在基地址部分有一个vptr,指向虚函数表,因此大小为4个字节。 1.2动态绑定的原理:假设派生类和基类存在覆盖的关系(基类中定义了虚函数),那么派生类在虚函数表中,会覆盖掉基类相应的虚函.....
分类:
编程语言 时间:
2014-08-02 01:47:42
阅读次数:
356
只有基类的方法加上关键字virtual后才可以被override,从而实现面向对象最重要的特征--多态性,即基类可以使用派生类的方法.C#中指出:普通的方法重载:指的是类中两个以上的方法(包括隐藏的,继承而来的方法)取的名字相同,只要使用的参数类型或者参数个数不同,编译器便知道在何种情况下应该调用哪...
分类:
其他好文 时间:
2014-07-31 16:25:47
阅读次数:
244
通过继承能够从已有的类派生出新的类,而派生类继承了基类的特征,包括方法。正如继承一笔财产要比自己白手起家容易一样,通过继承派生出的类通常比设计新类要容易得多。下面是可以通过继承完成的一些工作。
①可以在已有类的基础上添加功能。
②可以给类添加数据。
③可以修改类方法的行为。
C++有三种继承方式:公有继承、保护继承和私有继承。
一、公有继承
公有继承是最常用的方式,它建立一种i...
分类:
其他好文 时间:
2014-07-28 16:32:53
阅读次数:
506
public同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。private只有同一类或结构中的代码可以访问该类型或成员。protected只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员。internal同一程序集中的任何代码都可以访问该类型或成员,但其他程...
分类:
其他好文 时间:
2014-07-28 02:59:39
阅读次数:
192
面对对象语言的设计哲学通常分为以下两种。
第一种思路是基类的作者定下一系列的规则,规定使用该基类的人(派生类的作者)可以干什么事,不能干什么事。
C++,和 Java 就是这一阵营的主要代表。比如说,C++中类定义中的 public, protected, private, virtual 等关键字就是
所谓的规则,规定了类的用户可以使用的成员,必须继承接口,或者实现等等。
这...
分类:
编程语言 时间:
2014-07-27 11:38:16
阅读次数:
227
句柄类存在的意义是为了弥补将派生类对象赋给基类对象时发生的切片效应。例如下面的程序:
multimap basket;
Base base;
Derived derive;
basket.insert(base); //ok,add copy of base;
basket.insert(derive); //ok,but derive sliced down to its base part....
分类:
编程语言 时间:
2014-07-27 11:21:12
阅读次数:
255
前沿: 扩展方法使你能够向现有类型“添加“方法,而无需创建新的派生类型、重新编译或以其它方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。正文: 为了理解扩展方法,最佳的办法就是看代码,假如我们要定义一个下面这样的IndexOf方法: public stati...
分类:
其他好文 时间:
2014-07-27 09:53:22
阅读次数:
226