초기 C ++ 구현에는 네임 스페이스 액세스를위한 도트 연산자 가 있다는 소문 이 있습니다. 현대의 이중 콜론 연산자보다 점이 더 편리하다는 의견이 있습니다.
이중 콜론을 도입 한 이유는 무엇입니까?
답변
Jules가 관찰 한 바와 같이 초기 C ++ 구현 (CFront pre-1.0)에는 범위 식별에 대한 점이있었습니다.
클래스 (1980) 와 함께 C 에도 도트가 사용되었습니다 . 실제로 이것은 클래스 의 간단한 스 니펫입니다 .C 언어 1에 대한 추상 데이터 유형 기능 :
class stack {
char s[SIZE]; /* array of characters */
char * min; /* pointer to bottom of stack */
char * top; /* pointer to top of stack */
char * max; /* pointer to top of allocated space */
void new(); /* initialization function (constructor) */
public:
void push(char);
char pop();
};
char stack.pop()
{
if (top <= min) error("stack underflow");
return *(−−top);
}
(코드는 멤버 함수가 일반적으로 “다른 곳에”정의 된 방법의 예입니다)
이 클래스 는 C ++를 생성하기 위해 도입 된 C 클래스에::
추가 된 것 중 하나였습니다 .
그 이유는 Stroustrup 자신이 제공합니다.
클래스가있는 C에서 점은 클래스의 멤버십을 표시하고 특정 오브젝트의 멤버 선택을 표시하는 데 사용되었습니다.
이것은 약간의 혼란의 원인이었으며 모호한 예를 만드는 데 사용될 수도 있습니다. 이를 완화하기
::
위해 클래스 멤버십을 의미하도록 도입되었으며.
객체 멤버십 전용으로 유지되었습니다.
( C ++의 역사 : 1979−1991 [2] 페이지 21-§ 3.3.1)
-
Bjarne Stroustrup : “클래스 : C 언어에 대한 추상 데이터 유형 기능”-Bell Laboratories 컴퓨터 과학 기술 보고서 CSTR−84. 1980 년 4 월.
-
Bjarne Stroustrup : “C ++의 역사 : 1979-1991”-AT & T Bell Laboratories Murray Hill, 뉴저지 07974.