在 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”文件时,导致调用中止方法的原因是啥?

在 C++ 中实现断言检查的最佳方法是啥?

the hash for the file is not present in the specified catalog file,是啥意

c++面向对象的主要体现是啥?

从 C++ 调用 Java 方法的最简单方法是啥?

C++ 中static 和final的区别是啥