请教在VC++中SDK编程时的域操作符问题

来源:百度知道 编辑:UC知道 时间:2024/04/28 20:26:02
举个例子,MessageBox(……)和::MessageBox(……)有什么区别?好像它们的效果都是一样的,那么加不加::有什么不同呢?

注:不是MFC编程!

平时是一样的,但是如果某个类里面有个和MessageBox一摸一样的函数,就会有不同了。比方说,
class A
{
public:
int MessageBox(...); //这个和全局那个一摸一样
void foo();
};

void A::foo()
{
MessageBox(...);//这样调用的是A::MessageBox
::MessageBox(...);//这样调用的是全局函数
}

你没发现::MessageBox要传多几个参数吗?

MFC封装了许多WindowsAPI函数,使它们用起来更方便

::MessageBox就是被封装的函数之一

如果你在 CWnd 或其派生类内部调用 MessageBox(...),其实和 ::MessageBox(m_hWnd,...)是一样的。

真是麻烦