::(作用域解释符)前什么都没有,这又是怎么回事?

as603249917 2010-07-10 10:06:28
我这里有一段代码,
来自Microsoft Visual Studio\VC98\MFC\SRC\THRDCORE.CPP


do
{
// pump message, but quit on WM_QUIT
if (!PumpMessage())
return ExitInstance();

// reset "no idle" state after pumping "normal" message
if (IsIdleMessage(&m_msgCur))
{
bIdle = TRUE;
lIdleCount = 0;
}

} while (::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE));



其中while (::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE));中的::PeekMessage是什么用法?



...全文
127 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
coxfilur_2008 2010-07-24
2楼正解.
回复
greyrainbow2010 2010-07-24
新手,学习了
回复
junliang0824 2010-07-24
::的作用,
首先是区分MFC中与API同名的函数,加上::手表示调用的是API函数。
其次,表示调用的是全局函数。
到底是哪种情况,要看自己的代码是什么意思。
回复
xiejunhuang0714 2010-07-24
全局函数,不用指出类
回复
llx1314521 2010-07-23
全局作用域、调用的是API函数,与MFC同名函数相区别。

如果调用的API函数与你用到的(MFC)函数不同名,::这个符号可以省略
回复
as603249917 2010-07-23


//有三种调用方式调用cout
#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
std::cout<<"第一种用法";

::cout <<"第二中用法";



cout << "第三种用法" << endl;
cout << "Press ENTER to continue..." << endl;
cin.get();
return 0;
}
回复
Sou2012 2010-07-23
全局作用域(Global Scope):整个程序中的任何一条语句都可以访问这个作用域内的实体名称。只有包的名称是全局的。
回复
疯癫小程序 2010-07-23
表示你调用的是全局函数,因为在微软的函数库里 有些全局函数和某些类的成员函数同名了,所以有的时候在这个类里调用这个同名函数,前面要加:: 以示区别,表示你调用的是全局函数,而不是成员函数,否则如果你不加:: 的话,那么你调用的最终就是 成员函数了。
回复
Eleven 2010-07-23
::作用域标识符。。。
回复
xjtuzhl 2010-07-23
上面的基本都说了!
我混分!
回复
DotCpp 2010-07-10
建议楼主学习一下C++相关基础。这个是语法基础。 就是全局作用域,应该在命名空间这块会讲
回复
hongya6088 2010-07-10
全局作用域,和MFC同名函数区分开来。
回复
m_tornado 2010-07-10
[Quote=引用 1 楼 xianglitian 的回复:]

全局作用域啊
[/Quote]

如此~
回复
wangguang246 2010-07-10
::PeekMessage是以非阻塞的形式传递一个消息,这个函数是Windows API函数,具有全局作用。::代表全局的意思。比如 你声明一个static int a;这个a就具有全局作用。
回复
wltg2001 2010-07-10
其中while (::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE));中的::PeekMessage是什么用法?
==========
::表示调用的函数是API,因为MFC的部分成员函数与API同名,所以前面加::以示区别
回复
向立天 2010-07-10
全局作用域啊
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告