2017-04-18 3 views
0

왜 클래스 외부에 생성자를 정의하면서 생성자 이름을 사용하여 클래스 이름을 작성해야합니까? .... 클래스 이름은 생성자 이름에서 쉽게 감지 할 수 있습니다. 그들은 같은 이름을 가져야하고 리턴 타입이 없으므로 같은 이름을 가진 다른 일반 함수와 구별 할 수 있습니다.생성자의 신택스 정의

+0

모두가 이미 익숙해 져 있기 때문에. 표준은 법률과 마찬가지로 사람들의 의견으로 만들어집니다. 우리가 단수 일 때도 "너는 ..."이 아니라 "너는 ..."이라고해야만하는 것과 같습니다. .... 구문에 대해 더 잘 알고 있다면 세계 /위원회에 제안 할 수 있습니다. – javaLover

+0

컴파일러가 예를 들어 다음을 봅니다. 'Foo ('Foo ('Foo')는 함수 선언, 함수 정의, 캐스트,'Foo' 객체 생성 등 여러 가지 대안을 가질 수 있습니다. 또 다른 가능한 대안을 추가하면 컴파일러가 훨씬 더 어려워 질 것입니다 더욱이 갑자기 클래스의 멤버 함수를 만드는 데 두 가지 구문을 사용하게되어 프로그래머가 더 어려워집니다. –

답변

2

왜 클래스 외부에 생성자를 정의하면서 생성자 이름으로 클래스 이름을 작성해야합니까? .... 이해가 되나요?

예. 클래스의 다른 메소드를 정의 할 때와 동일합니다. 생성자는 여전히 클래스의 멤버이며 클래스 선언 외부에서 정의 된 경우 모든 멤버 메서드의 범위를 올바르게 지정해야합니다. 서로 다른 네임 스페이스에있는 여러 클래스가 같은 이름을 가진다면 어떻게되는지 상상해보십시오. 네임 스페이스와 클래스 이름으로 범위를 지정하지 않고 생성자 이름을 지정하면 모호한 결과가 발생합니다.