在面向对象程序设计中,非常常用的手法就是用基类的指针指向派生类,然后在执行期通过虚函数机制找到派生类中的函数,假设这样一种情况,全局函数有两个输入参数,分别是两个基类指针 A* ap 和 B* bp,那么如何既找到ap指向的准确对象,又找到bp指向的准确对象呢?答案就是多重派遣,既先找到ap(bp)指向的准确对象,再去寻找bp(ap)指向的准确对象...
分类:
其他好文 时间:
2014-12-04 13:58:13
阅读次数:
152
我知道virtual 的虚函数定义,~CMainFrame( )是析构函数,用来释放内存。C++的继承和派生内容。所有可以被用作基类的类一般都用虚析构函数当基类对象的指针或引用调用派生类对象时,如果基类的析构函数不是虚析构函数,则通过基类指针或引用对派生类的析构是不彻底的!会造成内存泄露!
分类:
编程语言 时间:
2014-12-04 11:40:31
阅读次数:
401
第四章面向对象(二)1.面向对象的特征二:继承性1.为什么要有继承性:减少代码的冗余2.通过“classAextendsB"类实现类的继承子类(派生类):A父类:(或基类SuperClass):B3.子类继承父类后,父类中声明的属性、方法,子类就可以获取到明确:当父类中有私有的属性或方法时,子..
分类:
编程语言 时间:
2014-12-03 01:57:41
阅读次数:
214
在之前的《设计模式:工厂模式》中记录了两种用于创建派生类对象的工厂模式,第一种模式直接使用基类的静态成员函数来创建派生类的对象,在该静态成员函数中直接调用了派生类的构造函数,第二种模式是使用基类工厂的静态成员函数,通过基类工厂中保存的各派生类工厂来创建派生类对象,派生类工厂是派生类的嵌套类,相当于为派生类量身定做的专属工厂,这些专属工厂的存在使得基类工厂不必了解创建派生类对象的细节。今天主要记录另外两种工厂模式:虚构造函数和抽象工厂。虚构造函数模式与前两种工厂模式不同,在前两种工厂模式中,基类是基类,派生类...
分类:
其他好文 时间:
2014-11-30 21:37:30
阅读次数:
144
LinQ---扩展方法和Lambda表达式
扩展方法:
扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的...
分类:
其他好文 时间:
2014-11-30 16:58:50
阅读次数:
194
如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类,在抽象类中声明方法时,如果加上abstract时就是抽象方法1.抽象类概述及声明抽象类与非抽象类的主要区别:·抽象类不能直接被实例化·抽象类中可以包含抽象成员,但非抽象类中不可以·抽象类不能被...
Point:
1、Oc 中不支持多继承。动态调用。
2、派生类的数据成员不能和基类重名,若重名,系统将不会定义成功
3、基类的成员函数可以和基类的成员函数重名(作用相当于C++中的虚函数)
4、派生类中若要调用基类中的方法可以用[super 方法名]的方法。
5、Object-C 具有单继承的特点,每个子类只有一个直接的父类
6、子类可以继承到父类的全部成员方法和全部成员变量
7、...
分类:
其他好文 时间:
2014-11-30 14:15:02
阅读次数:
466
扩展方法
扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。
如果我们有这么一个需求,将一个字符串的第一个字符转化...
虚函数是一个类中的成员函数,定义格式为:virtual 返回类型 函数名(参数表).关键字virtual指明该成员函数为虚函数。virtual仅用于类定义中,如虚函数在类外定义,不可加virtual。当某个类的一个类成员函数被定义为虚函数,则由该类派生出来的所有派生类中,该函数始终保持虚函数的特征。...
分类:
编程语言 时间:
2014-11-29 20:06:49
阅读次数:
281
1、默认构造函数默认构造函数要么没有参数,要么所有参数都有默认值。如果没有定义任何构造函数,编译器将自定义默认构造函数。自动生成的默认的构造函数的作用:(1)使可以创建对象(2)调用基类的默认构造函数以及调用本身是对象的成员所属类的默认构造函数。如果派生类构造函数的成员初始化列表中没有显示地调用基类...
分类:
编程语言 时间:
2014-11-29 17:32:15
阅读次数:
187