[전문가를 위한 C++] Part 1. 전문가를 향한 C++ 첫걸음 ~ Part 2. 전문가 답게 C++ 소프트웨어 디자인하기

Part 1. 전문가를 향한 C++ 첫걸음

Chapter 1. C++와 표준 라이브러리 초단기 속성 코드

  • 구조적 바인딩 (C++17)
    • 여러 개의 변수를 선언할 때 배열, 구조체, 페어 또는 튜플의 값으로 초기화 할 수 있다.
    • 예를 들어 다음과 같이 배열이 정의되어 있다고 하자.
      std::array<int, 3> values = { 11, 22, 33};
      
    • x, y, z라는 변수를 선언할 때, values 배열에 담긴 값으로 초기화 할 수 있다.

      auto [x, y, z] = values;  // 꼭 auto 키워드를 사용하자.
      
    • 구조적 바인딩은 모든 멤버가 non-static이면서 public으로 선언된 데이터 구조라면 어떤 것도 적용할 수 있다.

      struct Point { double mX, mY, mZ};
      Point p;
      p.mX = 1.0; p.mY = 2.0; p.mZ = 3.0;
          
      auto [x, y, z] = p;
      

Chapter 2. 스트링과 스트링 뷰 다루기

Chapter 3. 코딩 스타일

Part 2. 전문가 답게 C++ 소프트웨어 디자인하기

Part 2는 객체지향의 철학에 대해 전반적으로 다룬다.

Chapter 4. 전문가 다운 C++ 프로그램 디자인

  • C++ 디자인에서 가장 핵심적인 원칙은 추상화재사용이다.

Chapter 5. 객체지향 디자인

  • 인스턴스
  • 객체 간의 관계

Chapter 6. 재사용을 고려한 디자인