C++函数 - 作用域运算符::的使用

C++的::符合代表作用域运算符,例如MyClass的成员函数myFun,会写成MyClass::myFun,表示为MyClass中的myFun函数。但是还存在另外一种情况,就是前面没有作用域名,而是只有::加函数名的情况。这表示全局作用域,即所调用的函数是全局函数。

测试以及结果

测试程序:

DETAILS
#include <iostream>
using namespace std;

// 全局函数
void myFun()
{
    cout<<"global function myFun"<<endl;
}

class MyClass
{
public:
    int printFun1()
    {
    	//调用的是全局函数
        ::myFun();
    }

     int printFun2()
    {
    	//调用的是成员函数
        myFun();
    }
    void myFun()
    {
        cout<<"MyClass function myFun"<<endl;
    }
};

int main()
{
    MyClass m;
    m.printFun1();
    cout<<"————————————————————"<<endl;
    m.printFun2();
    return 0;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

执行结果:

global function myFun
————————————————————
MyClass function myFun

1
2
3
4