码迷,mamicode.com
首页 >  
搜索关键字:派生    ( 4856个结果
条款42: 明智地使用私有继承
第一个规则是,和公有继承相反,如果两个类之间的继承关系为私有,编译器一般不会将派生类对象(如Student)转换成基类对象(如Person)第二个规则是,从私有基类继承而来的成员都成为了派生类的私有成员,即使它们在基类中是保护或公有成员,即派生类对象不能访问基类的所有成员class person{}...
分类:其他好文   时间:2014-08-24 14:07:32    阅读次数:126
C++虚拟继承 类的内存布局
1、 单个虚拟继承 只是为了分析而已,实际中并没有太大的作用。跟虚拟继承相关的派生类对象的内存布局跟具体的编译器相关。    (1)VS编译器:无论有无虚函数,必然含有虚基类表指针。虚基类表中的内容为本类实例的偏移和基类实例的相对偏移值。如果有虚函数,那么基类的虚函数表跟派生类的虚函数表是分开的。 在内存布局上,地址从低到高,顺序如下:派生类的虚函数表指针+虚基类表指针+派生类的成员变量+“...
分类:编程语言   时间:2014-08-23 11:24:30    阅读次数:357
MMORGP大型游戏设计与开发(客户端架构 part15 of vegine)
一个接口需要统一的派生接口,这样做的好处在于能够统一的进行管理。我所知的脚本语言中,接口有多重接口,也还有所谓的虚基类,这些都是方便类的管理。在vengine(微引擎)中,统一的的接口管理为kernel模块,类的管理采取了节点管理的模式,就是所有类对象使用一个实例进行管理。那么什么是节点,什么是树?...
分类:其他好文   时间:2014-08-23 11:16:40    阅读次数:293
工厂方法模式
模式说明工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法模式让实例化推迟到子类。和简单工厂区别在于,每个工厂只管生产自己对应的产品,而简单工厂是一个工厂生产各种产品。模式结构图程序示例说明:一个日志类,两个派生类(文件日志和事件日志);一个日志工厂类(返回日志类),两...
分类:其他好文   时间:2014-08-23 11:08:20    阅读次数:172
C++之面向对象编程总结
1. 面向对象编程的三个基本概念:数据抽象(类),继承(类继承)和动态绑定(运行时决定使用基类函数还是派生类函数)。面向对象编程的关键思想是多态性。 2. 派生类可以继承基类中定义的成员;派生类可以调用基类函数;派生类可以重定义基类的函数;派生类可以定义新的数据成员和函数成员。 3. 基类通过关键字virtual来指出希望派生类重新定义的函数(虚函数)。而基类希望派生类继承的函数不能使用virtual关键字。 4. 通过动态绑定可以使我们在继承层次中使用任意类型的对象,而不用关心对象的具体类型。使用这些类的...
分类:编程语言   时间:2014-08-22 16:25:21    阅读次数:220
OpenGL在MFC中的使用总结(二)
有些时候用到OpenGL需要每次进行配置,有点麻烦,可以直接基于CWND派生一个OpenGL类,在需要的时候直接用就可以了。下面附赠上这样一个类,其中删掉了我项目具体绘制的一些东西,如有错误不能用请联系我~~~ h文件: #if !defined(AFX_OPENGL_H__38B5D1C8_2DFF_4A7D_9A99_3AC401C19D72__INCLUDED_) #define AFX...
分类:其他好文   时间:2014-08-21 17:13:34    阅读次数:230
条款39: 避免 "向下转换" 继承层次
基类指针不能调用派生类的独有的成员,此时可以使用static_cast来转换,但不要这么做,因为向下转换难看、容易导致错误,而且使得代码难于理解、升级和维护,static_cast不会进行类型检查,即使指针指向的对象的类型与转换的目标类型不一样,比如说指针指向基类对象,转换为派生类对象,此时仍然会继...
分类:其他好文   时间:2014-08-21 14:36:44    阅读次数:182
this指针的隐式动态绑定
遇到了这一段代码: class CBase{public: virtual void virfun() //虚函数 { coutvirfun();//this指针永远指向基类,无论其是否有派生类 }};class CDerive:public CBase{ virtual void virfun()...
分类:其他好文   时间:2014-08-21 11:05:03    阅读次数:181
句柄类与继承
前一小节《容器与继承》http://blog.csdn.net/thefutureisour/article/details/7744790提到过:对于容器,假设定义为基类类型,那么则不能通过容器訪问派生类新增的成员;假设定义为派生类类型,一般不能用它承载基类的对象,即使利用类型转化强行承载,则基类...
分类:其他好文   时间:2014-08-21 09:40:53    阅读次数:264
MFC 之支持串行化的类
MFC中可以串行化的类必须满足以下条件 1 从CObject派生,或者间接派生 2 重写Serialize函数 3 使用DECLARE_SERIAL宏 4 定义不带参数的构造函数 5 在类的实现文件中用IMPLENT_SERIAL宏 在绘图保存的程序中,类CPaints作为保存的基本单元,它里面存储了绘图类型,起始点,终止点三个成员变量。 然后在绘图中每当绘制一幅图都会将CP...
分类:其他好文   时间:2014-08-21 04:12:43    阅读次数:210
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!