Daybreakin Things
고등학교 때 정말 수박 겉핥기 수준으로 C++을 다뤄보긴 했지만, 그동안 학교 수업들 및 개인 프로젝트 등을 진행하며 본격적으로 쓸 일이 없었기에 따로 공부하지도 않았던 C++에 대해 살펴보고 있다.
미투데이에서도 언급했었지만, 어쨌든 OOP 언어로서 지대한 위치를 가지고 있는 C++을 공부해보니 Java를 통해 OOP 언어들을 접한 나로서는 너무나 당연한 것이 당연한 것이 아닌 게 꽤나 많았다.
아직 그 깊고 깊은 템플릿의 세계까지는 가지 않았지만, 몇 가지 특이할 만한 것으로는 다음과 같은 것들을 들 수 있겠다.
지금 보는 책에선 클래스에서 static을 사용했을 경우의 상속에 대해 자세히 설명하고 있지 않은데, Java나 Python 등과 어떤 차이점이 있는지 좀더 알아봐야겠다. 특히 php 5.3에서 late static binding이라는 것이 추가되었다길래 뭔가 알아보니 이 역시 '당연히 되어야 하는 것 아닌가'의 범주에 있던 거라서 C++에서는 또 다를 수도 있기 때문. -_-;;; (사실, php도 이런 점에서 상당히 황당한 경우가 좀 많다.)
예전에, OS 프로젝트를 하면서 (C++이 아닌 C이긴 했지만) static 함수들의 의미가 무엇인지 궁금했는데, 디버깅 과정에서 static 함수들은 최적화되어(!) 함수 호출이 inline으로 처리되어 있는 것을 본 적이 있다. 알고보니 일반 함수에 static을 쓰면 '그 파일 안으로 유효 범위 제한'이라는 뜻이 있단다.
아무래도, C/C++ 쪽 언어들을 제대로 책을 한 번 읽어보면서 쭉 정리를 해나가야 할 것 같다. STL은 또 그 자체로 꽤 큰 주제일 텐데... 하아;