가령, 프로그램을 하나 만드는데
A회사, B회사, C회사 총 3개의 회사의 라이브러리의 이름과 매개변수, 반환형 모두 똑같은 3개의 Func함수를
참조한다고 하자.
C언어로는 Func함수 호출문장을 입력하면 어떤 회사의 Func함수를 가져오라는건지
C++의 함수 오버로딩으로도 매개변수 선언까지 똑같아버리면 알 수 없게 된다.
어떻게 구분해야할까? C++에서는 이를위해 이름공간이라는 문법을 제공한다
이름도, 매개변수 선언도 똑같은 SimpleFunc라는 함수가 두개 있다.
본래라면, 컴파일 오류가 떠야하지만 다른 namespace안에 넣어줬기 때문에
main함수에서 어떤 이름공간의 함수인지 써주면 정상적으로 출력이 가능하다
" :: "은 범위 지정 연산자이다.
이름공간의 중첩과 using선언 (0) | 2020.10.04 |
---|---|
이름공간 기반의 함수 선언과 정의의 분리 (0) | 2020.10.04 |
인라인(inline) 함수 (0) | 2020.10.04 |
매개변수의 디폴트 값(default value) (0) | 2020.10.04 |
함수 오버로딩의 예시 (0) | 2020.10.04 |