回答編集履歴

2

修正

2020/07/18 19:08

投稿

8524ba23
8524ba23

スコア38341

test CHANGED
@@ -1,13 +1,49 @@
1
- [グローバル名前空間](https://docs.microsoft.com/ja-jp/cpp/cpp/namespaces-cpp?view=vs-2019#the-global-namespace)に属する`グローバル識別子`を明示的に指定する場合に使います。
1
+ `::`は[スコープ解決演算子](https://docs.microsoft.com/ja-jp/cpp/cpp/scope-resolution-operator?view=vs-2019)といいます。提示コードでは[グローバル名前空間](https://docs.microsoft.com/ja-jp/cpp/cpp/namespaces-cpp?view=vs-2019#the-global-namespace)に属する`グローバル識別子`を明示的に指定するために使っています。
2
2
 
3
- 例えば名前空間`hoge`とグローバル名前空間に同じ識別子(関数など)`func`が存在する場合
3
+ 例えば名前空間やクラス`hoge`とグローバル名前空間に同じ識別子(関数など)`func`が存在する場合
4
4
 
5
5
  ```C++
6
6
 
7
- using namespace hoge;
7
+ #include <iostream>
8
8
 
9
+ using namespace std;
10
+
11
+
12
+
13
+ void func(void){ cout << "global" << endl;}
14
+
15
+
16
+
17
+ class hoge{
18
+
19
+ public:
20
+
21
+ hoge(){}
22
+
23
+ void func(void){ cout << "hoge" << endl;}
24
+
25
+ void test(void){
26
+
27
+ func(); // hoge
28
+
29
+ ::func();// global
30
+
9
-
31
+ }
32
+
33
+ };
34
+
35
+
36
+
37
+ int main( void) {
38
+
39
+ hoge h;
40
+
41
+ h.test();
42
+
43
+ return 0;
44
+
45
+ }
10
46
 
11
47
  ```
12
48
 
13
- と記述されたコードにて、グローバル名前空間の`func`を呼びたい場合には`::func()`と書きます。
49
+ と記述されたコードにて、グローバル名前空間の`func`を呼びたい場合には`::func()`と書きます。

1

追記

2020/07/18 19:08

投稿

8524ba23
8524ba23

スコア38341

test CHANGED
@@ -1 +1,13 @@
1
1
  [グローバル名前空間](https://docs.microsoft.com/ja-jp/cpp/cpp/namespaces-cpp?view=vs-2019#the-global-namespace)に属する`グローバル識別子`を明示的に指定する場合に使います。
2
+
3
+ 例えば名前空間`hoge`とグローバル名前空間に同じ識別子(関数など)`func`が存在する場合
4
+
5
+ ```C++
6
+
7
+ using namespace hoge;
8
+
9
+
10
+
11
+ ```
12
+
13
+ と記述されたコードにて、グローバル名前空間の`func`を呼びたい場合には`::func(~)`と書きます。