虚函数 纯虚函数的用法
来源:互联网 发布:电脑软件下载管家 编辑:程序博客网 时间:2024/05/19 04:02
虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数,实际调用的是继承类的版本。 下面是一个实例:
#i nclude "stdio.h"
#i nclude "conio.h"
class Parent
{
public:
char data[20];
void Function1();
virtual void Function2(); // 这里声明Function2是虚函数
}parent;
void Parent::Function1()
{
printf("This is parent,function1/n");
}
void Parent::Function2()
{
printf("This is parent,function2/n");
}
class Child:public Parent
{
void Function1();
void Function2();
} child;
void Child::Function1()
{
printf("This is child,function1/n");
}
void Child::Function2()
{
printf("This is child,function2/n");
}
int main(int argc, char* argv[])
{
Parent *p; // 定义一个基类指针
if(_getch()=='c') // 如果输入一个小写字母c
p=&child; // 指向继承类对象
else
p=&parent; // 否则指向基类对象
p->Function1(); // 这里在编译时会直接给出Parent::Function1()的入口地址。
p->Function2(); // 注意这里,执行的是哪一个Function2?
return 0;
}
当我们输入小写字母C时,输出为:
This is parent,function1
This is child,function2
这里虽然parent类的指针调用的是Child类的对象,但非虚函数指针采用的是编译时赋值,而编译时parent并不知道实际指向哪个类(直到运行时才知道),所以它只能将parent类的函数的地址赋给指针.但虚函数采用的是动态联编,它可以在运行时判断指针指向的对象,并自动调用函数的函数.
故当我们输入其他字母时,输出为:
This is parent,function1
This is parent,function2
- 虚函数 纯虚函数的用法
- 虚函数纯虚函数的用法
- C++中虚函数与纯虚函数的用法
- 虚基类、虚函数、纯虚函数的用法及其区别
- C++之普通成员函数、虚函数以及纯虚函数的区别与用法要点
- 纯虚函数的作用
- 纯虚函数的识别
- 纯虚函数的调用
- 纯虚函数的调用
- 纯虚函数虚函数的区别
- 虚函数与纯函数的区别
- C++中的虚函数和纯虚函数用法
- C++ 虚函数和纯虚函数用法
- C++中的虚函数和纯虚函数用法
- C++中的虚函数和纯虚函数用法
- C++中的虚函数和纯虚函数用法
- C++中的虚函数和纯虚函数用法
- C++中的虚函数和纯虚函数用法
- 开博!
- 华尔街日报:电脑新保镖──杀毒硬件
- 新的起点,新的生活!
- C#.net常用函数和办法集
- 发展的方向
- 虚函数 纯虚函数的用法
- 每日构建
- 上班人员必读:“五险一金”详解!
- 集中、分布式搜索引擎的4种设计方案
- 利用CSS按比例缩小图片
- 计世网:人类最迫切需要的10项技术
- 北京网通已暂停连续上网48小时断线
- 常用英文
- 针对黑客网络攻击的预防措施