본문 바로가기
C++

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

by imagineer_jinny 2023. 12. 10.

용어 정리

선언(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

댓글