请教在VC++中SDK编程时的域操作符问题
来源:百度知道 编辑:UC知道 时间:2024/04/28 20:26:02
举个例子,MessageBox(……)和::MessageBox(……)有什么区别?好像它们的效果都是一样的,那么加不加::有什么不同呢?
注:不是MFC编程!
注:不是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,...)是一样的。
真是麻烦