相同函数名具有多态性:① 译时的多态(由函数名来调用时体现):重载:同类,不同参② 运行时的多态(用指向不同类的指针来调用):覆盖: 不同类,同参,基类有virtual(由指针的类型来决定,体现了多态性)隐藏:①不同类,同参,基类无virtual②不同类,不同参(不论有无virtual)(由指针来决...
分类:
其他好文 时间:
2014-06-28 22:55:22
阅读次数:
276
在派生的过程中,构造函数和析构函数是不继承的,因此在初始化时,派生类的构造函数就必须完成基类的私有变量初始化。解决问题的思路,在派生类调用基类的构造函数执行派生类构造函数的顺序是:调用基类构造函数,对基类数据成员初始化;调用子对象构造函数,对子对象数据成员初始化;再执行派生类构造函数本身,对派生类数...
分类:
编程语言 时间:
2014-06-21 09:22:42
阅读次数:
252
1.文档修改后,关闭时需要保存,主要用到2个函数,在需要更改文档内容的函数里调用SetModifiedFlag(TRUE),另一个就是SaveModified()函数,简单的例子:BOOL CMFC_Doc::SaveModified(){ // TODO: 在此添加专用代码和/或调用基类 ...
分类:
其他好文 时间:
2014-06-20 21:33:23
阅读次数:
192
里氏替换原则(Liskov Substitution Principle)表述为 "使用基类对象指针或引用的函数必须能够在不了解衍生类的条件下使用衍生类的对象。(Functions that use pointers or references to base classes must be abl...
分类:
其他好文 时间:
2014-06-19 07:24:20
阅读次数:
297
OOP概述
面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承和动态绑定。
1.继承:
类的一种层次关系,通常在层次关系的根部有一个基类,其他类则直接或间接的继承基类而来。这些继承而来的类称为派生类。...
分类:
编程语言 时间:
2014-06-18 11:56:26
阅读次数:
211
一.虚基类——在继承方式(public / private)class B1: virtual public B0{};作用:防止多重继承中二义性,保证成员唯一标识是核心。【比较】 作用域分辨符:: vs 虚基类 相同:都是为了保证 唯一标识成员 不同:①“::” 在派生类中,同名成员有多...
分类:
编程语言 时间:
2014-06-18 08:52:01
阅读次数:
222
三、TControl FireMonkey重写了TControl的代码,实现了众多接口,如下图: 基类上实现了众多功能,这里不详细描述。 四、TEdit 编辑框是从TControl—TStyledControl继承下来的,并实现了众多接口,如下图: 从实现的接口可以看到,包括键盘、光标、文字处理等都...
分类:
其他好文 时间:
2014-06-18 08:26:18
阅读次数:
186
其实设计模式可以学的很有意思的,不需要非得如此硬枯燥地去啃FOG的大部头,当然这些骨头啃啃也健康。
本文利用建造者模式设计一个有趣的场景,一个利用这个模式去学功夫的过程,呵呵。
首先设计一个基类,学功夫先要有基础嘛:
class 功夫
{
public:
virtual void 看招() = 0;
};
有了基础之后,我们就可以学习高级功法了,这里学习降龙十八掌,O(∩_∩)O...
分类:
其他好文 时间:
2014-06-17 22:26:12
阅读次数:
352
大家都知道C++虚函数的机制,对于基类定义为虚函数的地方,子类如果覆写,在基类指针或者引用来指向子类的时候会实现动态绑定。
但如果指针去调用非虚函数,这个时候会调用C++的静态绑定,去判断当前的指针是什么类型,就去执行哪个类型的函数。
很有一种比较经典的用法,就是Template Method模式,基类定义一个非虚的算法框架,里面具体定义一些纯虚的函数片段,由子类来进行实现,从...
分类:
编程语言 时间:
2014-06-17 18:48:34
阅读次数:
325
QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 QMainWindow 类提供一个有菜单条.....