용어 정리
선언(declaration)
코드에 사용되는 '어떤 대상'의 이름과 타입을 컴파일러에게 알려주는 것
정의(definition)
선언에서 빠진 구체적인 세부사항을 컴파일러에게 제공하는 것
-객체의 경우에 있어서 정의는 컴파일러가 그 객체에 대한 메모리를 마련해 놓는 것
초기화(initialization)
어떤 객체에 최초의 값을 부여하는 과정
기본 생성자(default constructor)
어떤 인자도 주어지지 않은 채로 호출될 수 있는 생성자
-원래부터 매개변수가 없거나 모든 매개변수가 기본 값을 갖고 있으면 기본 생성자가 될 수 있다
복사 생성자(copy constructor)
어떤 객체의 초기화를 위해 그와 같은 타입의 객체로부터 초기화할 때 호출되는 함수
복사 대입 연산자(copy assignment operator)
같은 타입의 다른 객체에 어떤 객체의 값을 복사하는 용도로 쓰이는 함수
class Widget{
public:
Widget(); // 기본 생성자
Widget(const Widget& rhs); // 복사 생성자
Widget& operator=(const Widget& rhs); //복사 대입 연산자
};
Widget w1; // 기본 생성자 호출
Widget w2(w1); // 복사 생성자 호출
w1=w2; //복사 대입, 연산자 호출
STL(Standard Template Library)
- 컨테이너(vector, list, set, map)
- 반복자(vector<int>::iterator, set<string>::iterator 등)
- 알고리즘(for_each, find, sort 등)
1. C++를 언어들의 연합체로 바라보는 안목은 필수
객체 지향 개념의 C++
- 클래스를 쓰는 C 에 관한 것이 모두 해당됨
- 클래스, 캡슐화, 상속, 다형성, 가상 함수
템플릿 C++
- 템플릿 메타프로그래밍 (TMP)
STL
- 컨테이너, 반복자, 알고리즘, 함수 객체 등
*이것만은 잊지 말자!
- C++ 는 한 가지 프로그래밍 규칙 아래 똘똘 뭉친 통합 언어가 아니라 네가지 하위 언어들의 연합체
- C++를 사용한 효과적인 프로그래밍 규칙은 경우에 따라 달라진다. 그 경우란, 바로 C++의 어떤 부분을 사용하느냐이다.
'C++' 카테고리의 다른 글
Effective C++ 항목 2 : #define을 쓰려거든 const, enum, inline을 떠올리자 (1) | 2023.12.12 |
---|---|
스마트 포인터 (0) | 2022.11.12 |
#10. 네트워크 (0) | 2022.05.16 |
#7. STL , - Vector (0) | 2022.04.28 |
#5. 자료구조 (0) | 2022.04.04 |
댓글