반응형
0. 요약
C++을 4가지 하위 언어의 엽합체로 이해하자!
- C, 객체 지향 C++, 템플릿 C++, STL C++
사용자 정의 타입의 경우 상수 객체 참조자 전달을 사용하자!
- const + &
1. C++ 역사?
- 초창기에는 C에 객체 지향 기능 몇가지가 결합된 형태
- 클래스를 쓰는 C 였음
- 그 후 C++은 꾸준한 성장
- 예외 : 함수 구성방식의 헤게모니를 크게 변경
- 템플릿 : 프로그램 설계에 대한 새로운 사고 방식 제공
- STL : 확장성에 대한 지평을 염
- 오늘 날의 C++
- 다중패러다임 프로그래밍 언어(multiparadigm programming language)
- 절차적 프로그래밍 기본 장착
- 객체 지향 프로그래밍
- 함수식 프로그래밍
- 일반화 프로그래밍
- 메타 프로그래밍
2. C++을 어떻게 이해 해야 하는가?
- 상관관계가 있는 여러 언어들의 연합체로 보라!
- 여러 개의 하위 언어들이 C++을 이루고 있다!
- 그 후 각 언어에 대한 규칙을 각개 격파!
3. C++를 구성하는 하위 언어 4가지
- C
- C++은 C를 기본으로 함(블록, 문장, 선행 처리자, 기본제공 데이터 타입, 배열, 포인터 등)
- 객체 지향 개념의 C++
- 클래스를 쓰는 C에 관한 모든 것이 여기에 해당
- 템플릿 C++
- C++의 일반화 프로그래밍 부분
- 템플릿 메타프로그래밍이라는 새로운 패러다임 파생됨
- STL
- 템플릿 라이브러리
4. 효과적인 프로그램 개발을 위한 예
- 한 하위 언어에서 다른 하위 언어로 옮길 때 당황하지 마라!
- C스타일
- 값 전달이 참조 전달보다 효율이 더 좋다
- 객체 지향 C++ 과 템플릿 C++
- 사용자 정의 생성자/소멸자 개념이 생김
- 상수 객체 참조자에 의한 전달 방식이 더 효율이 좋음
- STL C++
- 반복자와 함수 객체는 C의 포인터를 본떠 만든 것
- 반복자 및 함수 객체에 대해 값 전달이 효율이 더 좋음
참고
- Effective C++
반응형
'C++ > Effective C++' 카테고리의 다른 글
[Effective C++] 6. 컴파일러가 만들어낸 함수가 필요없으면 확실히 이들의 사용을 금해버리자. (0) | 2021.03.15 |
---|---|
[Effective C++] 5. C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 (0) | 2021.03.15 |
[Effective C++] 4. 객체를 사용하기 전에 반드시 그 객체를 초기화하자 (0) | 2021.03.15 |
[Effective C++] 3. 낌새만 보이면 const를 들이대 보자 (0) | 2021.03.15 |
[Effective C++] 2. #define을 쓰려거든 const, enum, inline을 떠올리자 (0) | 2021.03.15 |