C ++에 가상 함수에 대한“순수한”키워드가없는 이유는 무엇입니까? virtual void MyFunction() = 0;

나는 왜 우리가 코딩하는지 궁금해했다

virtual void MyFunction() = 0; 

그리고 아닙니다

pure virtual void MyFunction();

이 결정의 근거에 대한 참조가 있습니까?



답변

에서 디자인과 C의 진화 ++ 비얀 스트로브 스트 룹 – – 애디슨 – 웨슬리 (ISBN 0-201-54330-3) – 장 13.2.3 :

흥미로운 = 0키워드는 새로운 키워드를 도입 할 수있는 확실한 대안 pure이나 새로운 키워드 abstract를받을 가능성이 없었기 때문에 선택되었습니다. 내가 제안했다면 pure, 릴리스 2.0은 추상 클래스없이 제공되었을 것입니다. 더 좋은 구문과 추상 클래스 중 하나를 선택하면 추상 클래스를 선택했습니다. 지연을 위험에 빠뜨리고 특정 싸움을 벌이는 대신 pure0을 사용하는 전통 C 및 C ++ 규칙을 사용하여 존재하지 않습니다 .

어쨌든 C ++ 표준 (§ 9.2-클래스 멤버) = 0을 보는 것을 순수 지정 자라고합니다 .