在什么情况下在函数名字前不用加::号啊
下面的一个例子我搞不清楚全局函数 AfxMessageBox
CWnd::MessageBox
全局函数 MessageBoxvoid CMainFrame::OnHelpMessage()
{
  AfxMessageBox("全局函数 AfxMessageBox");
MessageBox("CWnd::MessageBox");
::MessageBox("使用全局函数 MessageBox");
}
为什么前面两个函数不用加::
第三个要加啊???

解决方案 »

  1.   

    1.全局函数
    2.类的成员函数
    3.类即有成员函数,又有全局函数,用::作为作用域限定符
    ::MessageBox的参数明显没传正确
      

  2.   

    叫域运算符...在MFC中表示调用API...或其它全局函数...为了区分是mfc函数还是api
       详见:http://search.csdn.net/Expert/topic/1183/1183492.xml?temp=.9471247
      

  3.   

    你要愿意,AfxMessageBox前面也可以加上::
      

  4.   

    AfxMessageBox("全局函数 AfxMessageBox"); ///Aplication Framework 框架内定义的函数
    MessageBox("CWnd::MessageBox");   ////CWnd类内部定义的成员函数MessageBox()
    ::MessageBox("使用全局函数 MessageBox"); ///MFC内定义的全函数MessageBox()
      

  5.   

    ::表从属关系
    a::b表a属于b
    比如:
    全局的函数FindWindow(),局部成员函数FindWindow(),这时就要用::这个域运算符来告诉编译器你想用哪个了。
    ::FindWindow()       //调用全局函数
    FindWindow()         //调用局部函数