더북(TheBook)

네임스페이스, 클래스, enum, 인터페이스, 타입 별칭, 함수, 변수는 같은 이름으로 여러 번 선언할 수 있는 것이 있고, 없는 것이 있습니다. 인터페이스나 네임스페이스는 같은 이름으로 여러 개 존재할 때 병합되고, 여러 번 선언할 수 있는 대표적인 예입니다. 함수는 오버로딩되므로 여러 번 선언할 수 있습니다.

이를 표로 정리해보았습니다.

▼ 표 2-5 같은 이름의 다른 선언과 병합 가능 여부

병합 가능 여부

네임스페이스

클래스

enum

인터페이스

타입 별칭

함수

변수

네임스페이스

O

O

O

O

O

O

O

클래스

O

X

X

O

X

O

X

enum

O

X

O

X

X

X

X

인터페이스

O

O

X

O

X

O

O

타입 별칭

O

X

X

X

X

O

O

함수

O

O

X

O

O

O

X

변수

O

X

X

O

O

X

X

이 표를 외우기는 쉽지 않습니다. 따라서 인터페이스, 네임스페이스 병합이나 함수 오버로딩 같이 널리 알려진 경우를 제외하고는 웬만하면 같은 이름으로 여러 번 선언하지 않는 것이 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.