#namespace
하나의 프로그램에 같은 이름의 변수, 함수, 클래스 등이 있으면 안된다.
이러한 것을 막기 위해 namespace를 사용한다.
main() 함수 위에 선언되어 있어야 한다.
정의
namespace NAME
{
변수, 함수, 클래스 정의
...
}
namespace를 정의한 후 그 안에 포함된 것을 사용하기 위해서는
NAME::변수, NAME::함수, NAME::클래스 등과 같이 사용한다.
1) 개별적으로 줄여서 사용하는 방법
using NAME::myfunc;
2) 네임스페이스 자체를 기본으로 설정
using namespace NAME;
#include <iostream> using namespace std; namespace A { void showTest() { cout << "namespace A test" << endl; } } namespace B { void showTest() { cout << "namespace B test" << endl; } } using B::showTest; int main() { A::showTest(); showTest(); return 0; } Result-------------------------------------------------------------------------------------------------------------- namespace A test namespace B test Result-------------------------------------------------------------------------------------------------------------- |
레퍼런스
변수의 별명, 변수처럼 사용
포인터는 메모리가 할당되나 레퍼런스는 메모리가 할당되지 않고 해당변수의 별명으로만 추가될 뿐이다.
반드시 초기화해야 하며, 초기화 시에 상수를 대입할 수 없다.
한 번 초기화하면 초기화 시에 대입했던 변수 이외의 변수의 별명으로 바뀌지 않는다.