본문 바로가기
Programming/Effective C++ 3판

항목 1. C++를 언어들의 연합체로 바라보는 안목은 필수

by deviAk 2008. 5. 28.
반응형

초창기의 C++는 단순한 C 언어에 객체 지향 기능 몇 가지가 결합된 형태였으나 꾸준한 성장을 거쳐 아이디어, 기능, 프로그래밍 전략들을 취해 자기 것으로 만드는 데 있어 점점 대담하고 과감한 행보를 보였다.

이렇게 발전한 C++는 다중패러다임 프로그래밍 언어라고 불리운다. 절차적 프로그래밍을 기본으로 객체 지향, 함수식, 일반화 프로그래밍을 포함하여 메타프로그래밍 개념까지 지원하고 있다.

C++를 적절히 사용하기 위해서 C++를 단일 언어로 바라보는 눈을 넓혀, 상관 관계가 있는 여러 언어들의 연합체로 보자. 이렇게 해 가면 시각이 단순해지고 명확해지며, 기억하기도 편해 진다.

C++는 4개의 하위 언어를 제공한다. 제공하는 하위 언어는 다음과 같다.

C : C++는 여전히 C를 기본으로 하고 있다. 블록, 문장, 선행 처리자, 기본제공 데이터타입, 배열, 포인터 등 모든것이 C에서 왔다.

객체 지향 개념의 C++ : '클래스를 쓰는 C'에 관한 것이 모두 해당이 된다. 클래스, 캡슐화 상속, 다형성, 가상 함수 등 객체 지향 설계의 규칙들 대부분이 그대로 있다고 보면 된다.

템플릿 C++ : C+++의 일반화 프로그래밍 부분이다. 템플릿은 완전히 새로운 프로그래밍 패러다임이 파생되었는데 그것을 템플릿 메타프로그래밍(TMP) 라 한다.

STL : STL은 템플릿 라이브러리다. STL은 컨테이너, 반복자, 알고리즘과 함수 객체가 얽혀 돌아가는 것을 규약으로 삼고 있다.

C++는 한 가지 프로그래밍 규칙 아래 똘똘 뭉친 통합 언어가 아니라 네 가지 하위 언어들의 연합체 이다. "하위 언어들로 구성되어 있다" 라는 점을 꼭 새겨 두도록 하자.

이것만은 잊지 말자!
C++를 사용한 효과적인 프로그래밍 규칙은 C++의 어떤 부분을 사용하느냐에 따라 달라진다.


관련 링크
http://ikpil.tistory.com/400
http://jbh5310.springnote.com/pages/702032
http://kelly.springnote.com/pages/552483
반응형