객체지향에서도 오로지 C++에만 있는 고유의 특징.

다중상속, 템플릿, 연산자오버로딩, ...


C++ 이후에 탄생한 OOP 파스칼이나 자바 등등의 랭귀지 스펙에서

이런걸 일찌감치 제외시켜버린 데에는 다 그만한 이유가 있습니다.

언어 설계한 전문가들이 다 이유가 있어서 일부러 제외시킨거라고요.

(언어 스펙에 포함된 모든 개념들을 어떻게든 자기 플젝에 다 적용해서

써먹어보려는 헛똑똑이 병신들은 제발 반성 좀 합시다)


쉽게 말해 니 혼자 잘났다고, 헷갈리기 쉬운 개념들 입맛대로 써먹을

대가리 된다고 해서 소스코드 설계에 막무가내로 적용하지 말라는겁니다.

회사는 혼자 일하는 곳이 아니고 회사에서 하는 프로젝트도

시간 넉넉한 상태에서 혼자 연습용으로 하는게 아니니까요.


C++ 고유의 OOP 특징은 학생이나 연구원 신분으로 공부할 때에는

그럭저럭 호기심을 자극하면서 어려운 듯 하면서도 곧 이해되고

차후에 유익하게 써먹을만한 획기적인 개념이라 생각하기 쉽습니다.


하지만 관련업계로 취업을 하게 되면 그런 여유로운 상황이 아닙니다.

남들이 작성해 놓은 수만~수십만 줄의 C++ 소스코드를 제한된 일정 내에

유지보수 해야하며 C++로 신규 개발을 해야할 수도 있습니다.

2~3개월에 걸쳐 개발했다가 손을 놓은 후 다른 사람에게 맡겨지기도 하고

그걸 다시 1년 후에 유지보수 해야 할 수도 있습니다. 뜻대로 될까요?


퇴근 시간은 늦어지고 남들 쉬는 주말에도 못쉴껍니다.

결국엔 못버티고 기존 플젝의 유지보수 포기를 선언하고

첨부터 다시 새로 만들겠다고 말했다가 욕 쳐먹고 쫓겨날 수도 있습니다.