在什么情况下在函数名字前不用加::号啊
下面的一个例子我搞不清楚全局函数 AfxMessageBox
CWnd::MessageBox
全局函数 MessageBoxvoid CMainFrame::OnHelpMessage()
{
AfxMessageBox("全局函数 AfxMessageBox");
MessageBox("CWnd::MessageBox");
::MessageBox("使用全局函数 MessageBox");
}
为什么前面两个函数不用加::
第三个要加啊???
下面的一个例子我搞不清楚全局函数 AfxMessageBox
CWnd::MessageBox
全局函数 MessageBoxvoid CMainFrame::OnHelpMessage()
{
AfxMessageBox("全局函数 AfxMessageBox");
MessageBox("CWnd::MessageBox");
::MessageBox("使用全局函数 MessageBox");
}
为什么前面两个函数不用加::
第三个要加啊???
2.类的成员函数
3.类即有成员函数,又有全局函数,用::作为作用域限定符
::MessageBox的参数明显没传正确
详见:http://search.csdn.net/Expert/topic/1183/1183492.xml?temp=.9471247
MessageBox("CWnd::MessageBox"); ////CWnd类内部定义的成员函数MessageBox()
::MessageBox("使用全局函数 MessageBox"); ///MFC内定义的全函数MessageBox()
a::b表a属于b
比如:
全局的函数FindWindow(),局部成员函数FindWindow(),这时就要用::这个域运算符来告诉编译器你想用哪个了。
::FindWindow() //调用全局函数
FindWindow() //调用局部函数