본문 바로가기
번역/Bjarne Stroustrup's C++ Style and Technique FAQ

Why doesn't C++ have a universal class Object?

by 겜게준 2019. 3. 7.
왜 C++에는 Object 공통 클래스가 없나요?

거의 모든 상황에서 제네릭 프로그래밍이 정적인 타입 안전의 대안이 되기 때문에 필요가 없습니다. 다른 상황에서는 다중 상속으로 처리가 됩니다.

공통 클래스는 자신의 의미를 전달하지 않기 때문에 유용하지 않습니다.

"공통" 클래스는 타입과 인터페이스에 대한 엉성한 생각을 부추기고 과도한 런타임 체크로 연결됩니다.

공통 클래스를 사용하면 비용이 발생합니다: 객체는 다형성을 가지기 위해서 힙에 할당되어야만 합니다. 이는 메모리와 접근 비용을 의미합니다. 힙에 할당된 객체들은 복사 시멘틱을 자연적으로 지원하지 않습니다. 힙 객체는 단순한 스코프에 따른 동작 (자원 관리를 복잡하게 하는)을 지원하지 않습니다. 공통 기본 클래스는 dynamic_cast와 다른 런타임 체킹을 부추깁니다.

이것은 논문이 아니라 FAQ이기 때문에 여기서 줄이겠습니다.


댓글