关于InitInstance虚函数

学习MS编程时无意看到了虚函数的概念,研究一会儿才看懂

虚函数,是在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。

不同于ruby等完全面向对象语言的override实现多态(不必须将子类函数定义在基类中,也没有虚函数的概念),C++虚函数是定义在基类中的函数,子类必须对其进行覆盖。在类中声明(无函数体的形式叫做声明)虚函数的格式如下:

virtual void display();

InitInstance是虚函数,CWinApp类的继承类必须提供它的实现代码完成整个消息链的启动。

在CWinApp这个类中除了有一般类都有的构造函数,一个重要的成员函数就是InitInstance。CWinApp派生自CWinThread,CWinThread::InitInstance是虚函数。派生类里是不是再加virtual无所谓,只要函数的签名和基类里的虚函数完全一样,自动重载基类的虚函数,除非中间有类在重载这个虚函数的时候加了final关键字禁止派生类再重载这个函数。

InitInstance就是“初始化实例”的意思,可见,它是在实例创建时首先被调用的。应用程序总要重载这个虚函数,进行系统设置,创建运行环境。例如,主窗口一定要在InitInstance()中创建,因为该函数退出后就进入该线程的消息循环。

参考:

InitInstance函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值