关于构造函数与InitInstance()函数问题

yong889 2008-05-21 10:36:54
在MFC中,(1)程序是先执行CMyApp:CMyApp()构造函数还是先执行CMyApp:InitInstance()函数?
(2)这两个函数有什么区别即不同点,好象它们都是初始化函数,我对这两个函数的概念有点模糊?
望各位大侠帮我解释这两个问题,谢谢!!!
...全文
345 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
KnightLuffy 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mackz 的回复:]
类的成员变量的初始化放在构造函数中;程序本身结构的初始化(涉及操作系统和功能的,比如创建窗口等)放在InitInstance中,其实也没有定例,怎么用可行、怎么用方便就好。
[/Quote]
讲的不错哦。。
cnzdgs 2008-05-22
  • 打赏
  • 举报
回复
一个类中最先执行的肯定是构造函数,构造函数中主要是对类中的成员变量做初始化。
shizhusz110 2008-05-22
  • 打赏
  • 举报
回复
学习!up
jameshooo 2008-05-21
  • 打赏
  • 举报
回复
全局变量的构造函数会在程序入口点之前执行。
构造函数往往只是初始化类实例的成员变量;InitInstance仅仅是MFC规定的进程范围的所有初始化工作(包括创建主窗口),它执行完后就直接进入消息循环了。
healer_kx 2008-05-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Mackz 的回复:]
类的成员变量的初始化放在构造函数中;程序本身结构的初始化(涉及操作系统和功能的,比如创建窗口等)放在InitInstance中,其实也没有定例,怎么用可行、怎么用方便就好。
[/Quote]

是的,我以为这么划分比较明智,它们分属于不同的层面上的东西,最好分开了。
coolerhero 2008-05-21
  • 打赏
  • 举报
回复
一般构造函数里,对类成员初始化
InitInstance()里,放自己想初始化的内容
你自己生成的MFC中有文字说明的,什么地方放什么代码的说明
菜牛 2008-05-21
  • 打赏
  • 举报
回复
类的成员变量的初始化放在构造函数中;程序本身结构的初始化(涉及操作系统和功能的,比如创建窗口等)放在InitInstance中,其实也没有定例,怎么用可行、怎么用方便就好。
yong889 2008-05-21
  • 打赏
  • 举报
回复
各位大侠,他们之间有什么区别?什么代码加在构造函数里,什么代码加在InitInstance()函数里,有没有规律性?
请详细点说一说,谢谢!!
devang 2008-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 healer_kx 的回复:]
其实你加两个断点就都知道了。

CMyApp有个全局对象,那么它的构造函数一定很早就发生了。这个是语言层面的东西,构造函数当然先被调用了。

然后才是
InitInstance()

这里是用于初始化MFC程序的部分,这个是MFC编程层面上的东西了。
[/Quote]
healer_kx 2008-05-21
  • 打赏
  • 举报
回复
其实你加两个断点就都知道了。

CMyApp有个全局对象,那么它的构造函数一定很早就发生了。这个是语言层面的东西,构造函数当然先被调用了。

然后才是
InitInstance()

这里是用于初始化MFC程序的部分,这个是MFC编程层面上的东西了。

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧