1、面向对象主要涉及 构造函数、析构函数、虚函数、继承、多态等。 2、对各种支持 的底层实现机制 c语言中,数据 和 处理数据的操作(函数) 是分开来声明,即语言本身并没有支持 “数据和函数”的关联性。 在C++中,通过抽象数据类型(abstract data type, ADT),在类中定义数据和 ...
分类:
编程语言 时间:
2016-07-15 00:31:50
阅读次数:
409
槽和普通成员函数一样,可以是虚函数、被重载,可以是公有、私有、保护的。它可以被其它C++成员函数调用。 槽连接了信号,当发射这个信号时,槽会被自动调用。 连接函数: bool QObject::connect ( const QObject * sender, const char * signal ...
分类:
其他好文 时间:
2016-07-15 00:13:00
阅读次数:
100
7.5.2虚基类 如果一个派生类从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的名字进行访问时,可能产生二义性。 如果在多条继承路径上有一个公共的基类,那么在继承路径的某处汇合点,这个公共基类就会在派生类的对象中产生多个基类子对象。 要使这个公共基类在派生类中只产生一个子对象,必须 ...
分类:
其他好文 时间:
2016-07-14 03:16:30
阅读次数:
161
第8章 虚函数与多态性 多态性是指一个名字,多种语义;或界面相同,多种实现。 重载函数是多态性的一种简单形式。 虚函数允许函数调用与函数体的联系在运行时才进行,称为动态联编。 8.1 静态联编 8.2 类指针的关系 8.3 虚函数与动态联编 8.4 纯虚函数与抽象类 8.5 虚函数和多态性的应用 小 ...
分类:
其他好文 时间:
2016-07-14 03:12:25
阅读次数:
157
虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数,在子类中实现虚函数。 class Cman { public: virtual void Eat(){……}; void Move(); private: }; class CChild : public CMan { publi ...
分类:
编程语言 时间:
2016-07-14 01:20:14
阅读次数:
148
C++类内存分布 转自:http://www.cnblogs.com/jerry19880126/p/3616999.html 书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。 工欲善其事,必先利其器,我 ...
分类:
编程语言 时间:
2016-07-12 22:51:36
阅读次数:
198
/* 题目63:编写C++程序完成以下功能: (1)声明一个纯虚函数类Shape(形状),其中包含来计算面积、计算周长的方法; (2)从Shape派生两个类矩形和圆形; (3)从矩形派生正方形; (4)分别实现派生类构造函数、析构函数和其他方法; (5)创建派生类的对象,观察构造函数、析构函数调用次 ...
分类:
编程语言 时间:
2016-07-10 21:42:06
阅读次数:
209
在类的定义中,前面有virtual关键字的成员函数就是虚函数。多态是通过虚函数来实现的。 Class base{ Virtual int get(); }; Int base::get() { } Virtual 关键字只用在类定义里的函数声明中,写函数体时不用。 构造函数和静态成员函数不能是虚函数 ...
分类:
其他好文 时间:
2016-07-09 10:40:43
阅读次数:
124
多态实现的关键 虚函数表 每一个有虚函数的类(或有虚函数的类的派生类)都有一个虚函数表,该类的任何对象中都放着虚函数表的指针。虚函数表中列出了该类的虚函数地址。多出来的4个字节就是用来存放虚函数表的地址的。 多态的函数调用语句被编译成一系列根据基类指针所指向的(或基类引用所引用的)对象中存放的虚函数 ...
分类:
其他好文 时间:
2016-07-09 10:37:46
阅读次数:
131
在度娘那里找到的一个牛人的回答,就复制了过来http://zhidao.baidu.com/link?url=AhjH4Os7ixE7gzWxChCLyd13yQGdb47dAbSm_p1BsyKmh4__QlCTWoRnKwIG5x9kSDg4tYmAsp1sYKnrF47Odq C++中的虚函数 ...
分类:
编程语言 时间:
2016-07-07 12:56:41
阅读次数:
197