在 mfc 和 c++ 中调用方法时 :: 是啥意思? [复制]
Posted
技术标签:
【中文标题】在 mfc 和 c++ 中调用方法时 :: 是啥意思? [复制]【英文标题】:What is the meaning of :: while calling a method in mfc and c++? [duplicate]在 mfc 和 c++ 中调用方法时 :: 是什么意思? [复制] 【发布时间】:2018-08-08 16:51:45 【问题描述】:我在我的项目中找到了类似的代码
if(::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE) != 0)
或
if(<Some Condition>)
::TranslateMessage(&msg);
::DispatchMessage(&msg);
:: 的意义是什么?
而且代码和JNI有关。
是不是因为线程编程(我不知道)?
【问题讨论】:
【参考方案1】:这是scope 说明符。
还有更多信息here。
C++ 名称只能用于程序的某些区域。这个区域被称为“范围”的名称。范围确定不表示静态范围对象的名称的“生命周期”。作用域还决定了名称的可见性、何时调用类构造函数和析构函数以及何时初始化作用域的本地变量。 (有关详细信息,请参阅构造函数和析构函数。)范围有五种:
功能范围 文件范围 类范围 原型范围
阅读这些文章了解更多信息。
关于范围的tutorials 也有很多。
作用域是程序的一个区域,广义上讲有三个地方可以声明变量 -
在称为局部变量的函数或块中,
在函数参数的定义中称为形参。
在所有称为全局变量的函数之外。
我应该指出,同样的规则也适用于函数。因此,如果在 CDialog
中定义了一个函数,并且您想要 global 版本而不是 CDialog
版本,则使用 ::
访问全局版本。
【讨论】:
以上是关于在 mfc 和 c++ 中调用方法时 :: 是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试在 C++ 中编译和运行我的“main.cpp”文件时,导致调用中止方法的原因是啥?
the hash for the file is not present in the specified catalog file,是啥意