关于API函数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 09:51:44
有的函数引用是用“::XXX();”
请问在“::”前没有界定类或者对象 这样的函数表示什么呢
小弟不是很懂 也许说了很多外行话 请高手用简单的通俗的解释指教
请不要复制一大段网络上的很晦涩和术语化的解释

::是用来分隔名空间元素的。

以::开头表示顶级名空间。

一般MFC类的函数是和Windows API函数同名的,区别只在于类的函数在类的名空间里,而Windows API在顶级名空间里。要用Windows API函数就要在开头加上::

::GetDC 其实就是GetDC完整的名字(qualified name) 平时写GetDC其实是个简写。

--

还是多说两句... 像你在类的方法里写的代码是在类的名空间里(其实这么说也不准确,姑且这么算了)比如你写class A { void f() {}}; f的完整名就是::A::f 在A的成员函数里的默认名空间是::A 如果一个名字在当前名空间找不到就会在上一级名空间找,这里也就是顶级名空间了。如果class A里有一个GetDC成员函数,你在f里调用GetDC默认就是::A::GetDC,这个时候你要调用::GetDC就只能用全名。