신입 개발자 공부 과정

C++ 처음부터 다시 공부하기 (진행 중) 본문

C++/공부

C++ 처음부터 다시 공부하기 (진행 중)

Lewisjkim 2024. 4. 15. 01:30
  • 공부 목표 = 신입 개발자로서 원활한 업무 수행을 위해 필요한 C++ 기본 및 응용 능력 향상을 목적으로 함
  • 참고하는 책 = 전문가를 위한 C++ 5th Edition
  • 참고 사이트 = msdn
  • Test 환경 = Visual Studio 2022

C++ 기초

  • 모듈 module
    • C++20 부터 새롭게 추가된 대표적인 기능 중 하나로 header file이라 부르던 메커니즘을 대체하는 기능. 사용하려는 header 파일 및 cpp파일에서 import "파일명"으로 불러와야 한다.
    • 장점 = 이전과 다르게 h파일과 cpp파일로 나누어 정의 및 구현이 필요하지 않다.
  • 빌드 작업 단계 (빌드 작업은 소스코드를 프로그램으로 만드는 작업)
    1. 전 처리 단계 - 소스에 담긴 메타정보를 처리한다(컴파일러에게 알려준다)
    2. 컴파일 단계 - 소스 코드 머신이 읽을 수 있는 객체파일로 변환한다.
    3. 링크 단계 - 앞에서 변환한 여러 객체 파일을 애플리케이션으로 변환한다.
  • 지시자 #include 처럼 #으로 시작
  • <cstdio> 공식 권장 방식 / <stdio.h> 기존 방식
  • 이스케이프 시퀸스 = 
    • \n = 줄 바꿈
    • \r = 커서를 현재 라인 맨 앞으로 이동
    • \t = tab
    • \\ = "\"표시
    • \" = " 표시
  • namespace는 코드에서 이름이 서로 충돌하는 문제를 해결하기 위해 나온 개념.
  • :: scope 지정자
  • namespace alias는 namespace 안에 namespace가 있는 구조를 말한다
  • literal
    • 진수 리터럴
    • float 등 리터럴
    • 문자 리터럴
  • { } 균일 초기자 는 C++11부터 가능하고 = 영 초기자로도 불린다
  • C++은 strong type 언어로으로 항상 코드를 구체적으로 지정해야한다
  • 숫자 경계 값
    • 경계값이란 (예) 정수의 최대값 
    • C에서는 INT_MAX 처럼 #define 정의된 값을 구했다.
    • <limits>에서 제공하는 std::numeric_limits 클래스 템플릿을 사용하는 것이 바람직 하다.
    • min() 가장 작은 양의 값
    • lowest() 표현 가능한 가장 작은 음수
  • 캐스트
    • C방식 - (int)myfloat
    • 권장x 방식 - int(myfloat)
    • 권장 방식 - static_cast<int>(myfloat)
  • enum & enum class
  • 논리 연산자
    • 3방향 연산자 <=>가 추가됨 - <compare>에 정의됨
  • 어트리뷰트 - 소스코드에 벤더에서 제공하는 정보나 옵션을 추가하는 메커니즘
  • C array - 연속되게 저장, 반드시 크기 지정
  • C++  std::array -
    • C array에 비해 항상크기를 알 수 있고 자동으로 포인터를 캐스트하지 않아 특정 버그를 방지 가능.
    • iterator로 배열에 대한 반복문을 쉽게 작성 
    • 17장에 더 자세히
    • ex) std::array<int, 3> arr<9,3,7>
  • CTAD(class template argument deduction) 
    • auto v = std::vector({ 1, 2, 3 });
  • std::vector
    • 크기가 고정되지 않는 배열
    • std::array보다 유연하고 안전하다
    • runtime에 추가/삭제 가능
    • generic container다
  • 진행중

 


더 공부해야 될 내용

  • 개발에 필요한 수학 공부하기
  • QT 공부하기
  • OpenGL 공부하기
  • 기초적인 서버 공부 및 구현해보기
  • 개발 보안 공부하기
  • Git 공부하기
  • 멀티 쓰레드 공부하기

'C++ > 공부' 카테고리의 다른 글

프로그래머스 의상 C++  (1) 2023.12.05
[프로그래머스] 완주하지 못한 선수 - Hash  (1) 2023.12.01
프로그래머스 0 떼기  (1) 2023.11.30
프로그래머스 하샤드 수 C++  (0) 2023.11.07
IMGUI 툴 디자인 하기  (0) 2023.07.16