快快快,全局函数里有this指针么?
顺便还有一个迟迟没有答案的问题,顺便帮忙解答一下,谢谢:
按照C++的说法,CFrameWnd的Create函数是不是把CWnd的virtual Create函数“隐藏(hide)”了?
我查看了一下,一个8个参数,一个7个参数,这样是不是就把基类的虚函数隐藏了?
如果CFrameWnd的派生类对象调用Create函数(自己未定义),是不是调用CFrameWnd的Create?
如果要调用CWnd的Create,是不是需要这样: a.CWnd::Create(...); (假设a是CFrameWnd的派生类的对象)
不知道我有没有理解错。
问题点数:20、回复次数:9Top
1 楼ouyh12345(五岭散人)回复于 2006-06-01 15:02:20 得分 3
全局函数里没有this指针。
不是隐藏。
返回值和参数列表都一样时,才是隐藏Top
2 楼VCMFC123(努力学好VC/MFC)回复于 2006-06-01 15:29:47 得分 0
各位是不是这个意思,只要进入全局函数,在里面这样调用函数,比如
abc() <------------这个是全局的,可能是由某各类的对象调用的
{
def();
}
那么def()必定也是全局函数Top
3 楼fdimim(猿莫求愚√))回复于 2006-06-01 15:42:19 得分 3
全局是和局部相对立的。
别管它,只要看是不是类的成员函数。
只有类的成员函数要this,不是的就没有this。Top
4 楼fdimim(猿莫求愚√))回复于 2006-06-01 15:43:25 得分 0
不过好久没看c++了,搞不清隐藏和覆盖了。Top
5 楼VCMFC123(努力学好VC/MFC)回复于 2006-06-06 13:06:47 得分 0
up一下,请人再帮忙看看Top
6 楼Johnny_de(是的,当时就是这样的!)回复于 2006-06-06 13:28:01 得分 7
既然是全局函数了,就是文件范围内所有的对象都能访问,那么this又是对应不同的对象本身的,那么楼主你觉得全局变量还会有this指针吗?
对于你的第二个问题,如果CWnd继承于CFrameWnd,那么Create函数如果是虚函数,那么就不能说是覆盖。Top
7 楼sharpdew(风刃)回复于 2006-06-06 13:32:57 得分 7
之所以引入this,是为了把member function转化为nonmember对等的实体,那么你想全局函数中有没有this咯?肯定是没有的!
至于你后面的分析,光从你叙述来看,我想你是对的!Top
8 楼cattlenzq(吃狼的豆腐(不要给分了,散起来真麻烦!))回复于 2006-06-06 19:48:59 得分 0
么Top
9 楼tyl_22(你跺你也麻)回复于 2006-06-06 19:54:36 得分 0
没有Top




