[Effective C++] 항목1 : C++을 언어들의 연합체로 바라보는 안목은 필수

Jangmanbo·2023년 2월 2일
0

Effective C++

목록 보기
1/33

오늘날의 C++은 다중 패러다임 프로그래밍 언어(multiparadigm programming language)라고 불린다.
절차적 프로그래밍을 기본으로 객체지향, 함수식, 일반화, 메타 프로그래밍 개념까지 지원한다.

이러한 C++을 이해하는 가장 쉽고 정확한 방법은 C++을 단일 언어가 아닌 여러 언어들의 연합체 로 보는 것이다.
C++은 네 가지의 하위 언어를 제공하고 있다.

  • C
    C++은 C를 기본으로 한다.
    ex. 블록, 문장, 선행 처리자(#define, #include, ...), 기본 제공 데이터타입, 배열, 포인터 등

  • 객체 지향 개념의 C++
    클래스를 쓰는 C를 말한다.
    ex. 클래스(생성자, 소멸자, ...), 캡슐화, 상속, 다형성, 가상 함수(동적 바인딩) 등

  • 템플릿 C++
    C++의 일반화 프로그래밍

  • STL(Standard Template Library)
    컨테이너, 반복자(iterator), 알고리즘, 함수 객체 등이 적용되는 템플릿 라이브러리를 의미한다.

C++은 한 가지 프로그래밍 규칙 아래 뭉친 통합 언어가 아니라 네가지 하위 언어들의 연합체이다.
각각의 하위 언어가 자신만의 규칙을 가진다.

따라서 C++에서의 효과적인 프로그래밍 규칙은 C++의 어느 부분을 사용하느냐에 따라 달라진다.


ex. C의 기본 제공 데이터 타입이나 STL의 반복자 및 함수 객체의 경우 값 전달이 효율적이지만, 객체 지향 C++에서는 참조 전달이 효율적

0개의 댓글