与:: function语句混淆

时间:2014-02-24 05:17:25

标签: c++ winapi

我在VS C ++中看到了代码示例,例如:: function(),但我无法理解它的含义。

我理解::用于从外部类访问成员函数,但我看过我没有找到这种情况的例子。例如,在以下代码中

// For painting in memory
class MemCanvas: public Canvas
{
public:
    MemCanvas (HDC hdc) 
        : Canvas (::CreateCompatibleDC (hdc))
    {}

    ~MemCanvas ()
    {
        ::DeleteDC(_hdc); 
    }
};

参见:: CreateCompatibleDC()函数!! 据我所知,它是在Windows.h中定义的,但是我在这里定义的方法无法猜测。

1 个答案:

答案 0 :(得分:1)

::指的是全局命名空间。

作为函数调用的前缀,它表示这不是成员函数,它是一个全局命名空间函数。

与Windows API函数的命名约定一起,它几乎可以识别Windows API函数。给读者。通常没有命名冲突,因此编译器不需要它:它只是一个与代码的读者进行通信的设备。