virtual 函数会动态绑定,而virtual函数的缺省参数值是静态绑定的。用一个base类型的指针p去指向一个derived类对象,通过p调用虚函数时,会动态绑定到实际所指对象中的函数;用一个derived类型的指针p2指向一个derived对象,由p2调用函数时,直接就是调用的derived中的函数,其参数值也是derived类中函数对应的参数值。
#include
using name...
分类:
编程语言 时间:
2015-06-25 12:26:23
阅读次数:
155
简单的说,虚函数就是被virtual修饰的成员函数。其目的就是为了实现类的多态性,需要了解一下几个问题:1.一个函数是虚函数,并不是说这个函数不被实现;2.定义一个函数为虚函数的目的,是为了从基类调用派生类的同名函数;3.如果一个函数被定义为纯虚函数,代表这个函数没有被实现,需要子类实现。举例说明:...
分类:
编程语言 时间:
2015-06-25 10:11:25
阅读次数:
125
领导类(Leader)和工程师类(Engineer)都是人类(Person)的派生类。请将下面代码中空缺的部分填上,使main函数中能通过指向Person类的指针,调用Leader和Engineer类中各自的成员函数show,输出相关的信息。
Input
第一行输入是某领导的信息,如“Wang 40 Manager Sales”表示40岁的王(Wang)领导是销售部(Sales)的经理(Man...
分类:
其他好文 时间:
2015-06-25 09:03:14
阅读次数:
98
1)“多态”的关键在于通过基类指针或引用调用一个虚函数时,编译时不确定到底调用的是基类还是派生类的函数,运行时才确定 -- 这叫 “动态联编”。2)分析下面示例的运行结果class Base {public: int i; virtual void Print() {cout << "B...
分类:
编程语言 时间:
2015-06-24 22:31:41
阅读次数:
265
虚函数#include #include using namespace std;class Base{ public: virtual void print_val() { cout print_val(); yb.print_val(...
分类:
编程语言 时间:
2015-06-24 22:28:48
阅读次数:
172
在面向对象语言中,接口的多种不同的实现方式即为多态。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。最常见的用法就是声明基类的指针,利用该指针指向任意一个子类对象,调用相应的虚函数,可以根据指向的子类的不同而...
分类:
其他好文 时间:
2015-06-24 18:21:52
阅读次数:
129
产生一个子线程,遍历文件夹,然后将信息打印在主界面上。1.子类化QThread可以产生一个新的线程,重构虚函数run()。子线程和主线程的通信是利用signal-slot机制,子线程将信息通过emit signal(“信息”)发送给主线程class NewThread : public QThrea...
分类:
其他好文 时间:
2015-06-24 15:51:33
阅读次数:
163
那些被 virtual 修饰的成员函数,就是虚函数。虚函数的作用同函数重载一样,也是为了实现多态性。以下示例中 A 和 B 定义了相同接口,分别调用时,输出不同。class A {public: void print() { cout print(); pb->print(); r...
分类:
编程语言 时间:
2015-06-23 11:32:39
阅读次数:
118
多态是指使用相同的函数名来访问函数不同的实现方法,即“一种接口,多种方法”,用相同的形式访问一组通用的运算,每个运算可能对应的行为不同。 C++支持编译时多态和运行时多态,运算符重载和函数重载就是编译时多态,而派生类和虚函数实现运行时多态。 1、运行时多态: class A { p...
分类:
编程语言 时间:
2015-06-22 22:08:24
阅读次数:
149
本文记录了有关sizeof的一些计算,主要有下面的四种情况:(如有错误,敬请留言)使用sizeof()计算普通变量所占用的内存空间sizeof计算类对象所占用空间的大小-用到了字节对齐sixeof计算含有虚函数的类对象的空间大小sizeof计算虚拟继承的类对象的空间大小使用sizeof()计算普通变...
分类:
其他好文 时间:
2015-06-22 22:04:52
阅读次数:
261