'0'으로 순수 가상 함수 초기화 이해하기
순수 가상 함수를 선언할 때 항상 다음에 할당된다는 것을 알 수 있습니다. 값 0:
virtual void fun() = 0;
이 관행은 순수 가상 함수가 왜 초기화되는지에 대한 의문을 제기합니다. with 0.
잘못된 가정
처음에는 해당 vtable 항목을 NULL로 설정하기 위해 순수 가상 함수에 값 0이 할당되었다고 믿었을 것입니다. 그러나 이 가정은 올바르지 않습니다. 순수 가상 함수에 할당된 값이 반드시 vtable 항목을 NULL로 설정하는 것은 아닙니다.
'0'의 실제 이유
=0 구문 사용 순수 가상 함수의 역사는 Bjarne Stroustrup의 C 초기 작업으로 거슬러 올라갑니다. 그는 "pure"라는 새로운 키워드를 도입하기보다는 당시 C 커뮤니티에서 받아들여질 가능성이 더 높다고 믿었기 때문에 =0 구문을 선택했습니다.
Stroustrup 자신이 자신의 책에서 말했듯이, "C의 설계 및 진화" =0 구문은 vtable 항목을 NULL로 설정하기 위한 것이 아닙니다. 더욱이 vtable 항목을 NULL로 설정하는 것은 순수 가상 함수에 대한 이상적인 구현 전략이 아닙니다.
결론
순수 가상 함수를 0으로 초기화하는 것은 관련이 없습니다. vtable 항목을 NULL로 설정합니다. 대신 C 개발 초기 단계에서 순전히 가독성과 호환성을 위해 =0 구문이 선택되었습니다.
위 내용은 순수 가상 함수가 '0'으로 초기화되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!