摘要:本文是翻译文章,主要介绍了运行时重载C++类的技术,包括了Linux上的动态加载接口、C++类的动态加载技术点及实现、自动加载技术等。最后给出了两个应用案例及相关的源代码。
关键字:动态加载,C++类,Linux
原文链接:http://porky.linuxjournal.com:8080/LJ/073/3687.html...
分类:
编程语言 时间:
2014-06-07 02:05:09
阅读次数:
368
C语言本身是不支持继承和多态的,但其实在 C
的世界里,有一套非常有名的面向对象的框架,用的也非常广,那就是GObject,它是整个图形界面开发库 GTK 的基石,在IBM
developerWorks上有一篇很好的文章介绍 GObject《GObject对象系统》。另外,在 Linux 内核里.....
分类:
编程语言 时间:
2014-06-03 12:20:16
阅读次数:
491
C++对象模型内存布局例如以下:非静态数据成员在对象之内静态数据成员在对象之外静态、非静态成员函数在对象之外类中存在虚函数时,一个类相应一个virtual
table放在对象之外,对象中安插一个指针vptr指向这个表。測试例程:#include using namespace std; class....
分类:
编程语言 时间:
2014-06-03 09:58:23
阅读次数:
283
继承和组合都可以达到代码复用的目的,但是组合比继承更具灵活性。组合是通过引用已有类(一般为抽象类)或接口来实现复用的组合在运行时通过多态可以动态替换被组合的对象。继承是通过以子类继承父类方式来使父类的非私有成员可以被其子类使用。继承在类编译时就确定了继承来的方法和属性,无法在运行时动态改变从父类继承...
分类:
其他好文 时间:
2014-05-31 16:52:23
阅读次数:
196
和Java不同,CDerive
derive语句可以直接生成对象,不需要new关键字重载虚函数才可以用父类引用调用子类对象,重载普通函数没有效果#include#includeusing
namespace std;class CBase{public : void fun() { ...
分类:
编程语言 时间:
2014-05-30 14:46:07
阅读次数:
247
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家具体介绍当中C++多态性的一些基本知识,以方便大家在学习过程中对此可以有一个充分的掌握。
多态性能够简单地概括为“一个接口,多种方法”,程序在执行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polym.....
分类:
编程语言 时间:
2014-05-30 04:17:54
阅读次数:
288
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class
Cman{public:virtu...
分类:
其他好文 时间:
2014-05-30 02:11:58
阅读次数:
253
dynamic_cast
(expression)dynamic_cast运算符,应该算是四个里面最特殊的一个,因为它涉及到编译器的属性设置,而且牵扯到的面向对象的多态性跟程序运行时的状态也有关系,所以不能完全的使用传统的转换方式来替代。但是也因此它是最常用,最不可缺少的一个运算符。与static....
分类:
编程语言 时间:
2014-05-29 19:08:47
阅读次数:
508
面向对象的3个基本要素:封装、继承、多态面向对象的5个基本设计原则:单一职责原则(Single-Resposibility Principle)
其核心思想为:一个类,最好仅仅做一件事,仅仅有一个引起它的变化。单一职责原则能够看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以...
分类:
其他好文 时间:
2014-05-29 11:43:07
阅读次数:
190
前不久在C++板块请教过这样一个问题:“多个基类中相同的纯虚函数,只需在派生类中实现一次”是否是标准行为。这个问题直到现在我也还没能确定,不过我在VC2005、VC2008和g++上都试过,该特性在所有这些编译器上都可以正常工作,所以应该八九不离十了。另外,记得当时星星有“语法正确逻辑说不过去”一....
分类:
其他好文 时间:
2014-05-28 20:19:02
阅读次数:
354