vc++中,为什么CWnd*pParent通常=NULL?

 我来答
bhtzu
推荐于2018-03-29 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4212万
展开全部

根据VC的命名规则,CWnd*pParent是指 某个窗口的 父窗口。

CWnd* pParent=NULL

这个代码,最常见的地方是函数的参数和函数参数带有的默认值。当参数pParent带有这个默认值,说明这个父窗口可以不指定,也就是使用NULL,表示没有父窗口。同时也表示,你可以指定父窗口,只要给这个参数一个明确的窗口指针就可以了。

另外一个常见的地方,就是声明一个窗口指针:

CWnd* pParent=NULL;
//pParent->Create(....);
pParent = GetParent();

这种情况相对少见,这里赋值NULL的意思,是为了指针安全,任何指针在声明的时候,赋值NULL都是很好的安全处理,是C/C++编程的好习惯。

这是为了防止声明指针变量后,指针变量的内存地址中有随机数值,这样在之后对指针是否为空的判断会出现错误。

似水流年00
2006-08-23 · TA获得超过2073个赞
知道小有建树答主
回答量:956
采纳率:0%
帮助的人:1365万
展开全部
这个问题可以这样的来理解:

vc++编制的程序框架一般就是三种:SDI,MDI,DLG。而CWnd* pParent指的就

是本程序窗口(我们把控件,视图等等都广义的成为一个窗口)的父窗口,

除非你在编制关于控件的程序的时候可能要会要返回控件的环境,这时候的指

针就不为空。而是指示的它的上一级窗口。如果你的程序某些时候不需要用到

父窗口,一般就会为NULL.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fancyaj
2006-08-23 · TA获得超过1058个赞
知道小有建树答主
回答量:709
采纳率:0%
帮助的人:915万
展开全部
传递参数的时候,需要传递父窗口指针,但是如果你的程序某些时候不需要用到父窗口,那只要用NULL把这个参数缺省掉就可以了.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蛮蛮工作室
2006-08-23 · TA获得超过367个赞
知道小有建树答主
回答量:800
采纳率:0%
帮助的人:439万
展开全部
父窗口的指针,没有父窗口就 是null吧,不太清楚,觉得可能是
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式