본문 바로가기

C++/C.S 필요한 C++ 문법!

C++ 0.02 - Namespaces

코드


#include <iostream>
using namespace std;

namespace one { int var = 5; }
namespace two { int var = 3; }

int main(int argc, char **argv} { 
  cout << one::var << endl;
  cout << two::var << endl; 
  return 0;
}

Namespace를 지정해주면 같은 변수라도 다른 값을 사용할 수 있다.

이때 사용하는 것이 Operator :: 이다.

 

Operator ::

  1. To access a global variable when there is a local variable with same name.
  2. To define a function outside a class.
  3. To access a class’s static variables.
  4. In case of multiple Inheritance.

 

예시 코드


int y = 0;     // Global y
int x = 1;     // Global x

void f(){      // Function is a new block
  int x = 5;   // Local x = 5, it hides global x
  ::x++;       // Global x = 2
  x++;         // Local x = 6
  y++;         // Global y = 1
}

:: 를 사용하면 Global 변수에 Access 할 수 있다.