본문 바로가기

GameStudy489

Chapter 07. 스마트 포인터 7.1 unique_ptr 7.1-1 원시 포인터 Def) 원시 포인터(Naked Pointer) 이전까지 사용해오던 C 스타일의 포인터. 아무것도 없이 위험한 세상에 노출되어 있단 뜻. Note) 원시 포인터는 더이상 필요하지 않다면 메모리 해제 필수 MyVector* ptrVec = new MyVector(7.f, 7.f); ... delete ptrVec; ptrVec = nullptr; Note) 스마트 포인터는 delete를 직접 호출할 필요가 없음. 그래서 스마트임. 그리고 가비지 컬렉션보다도 빠름. 쓰이지 않는 순간 곧바로 지워주기 때문. Note) 스마트 포인터의 종류 - unique_ptr: 매우매우 중요한 스마트 포인터. 이를 이해하기 위한 문법을 하나 더 숙지하고 있어야 함. - sh.. 2022. 5. 8.
Chapter 06. C++11/14/17 6.1 새로운 키워드 6.1-1 auto Def) auto 키워드 자료형을 추론함. 다만, C++은 컴파일 중에 자료형이 정해져야 하는 stronged type이기 때문에, 실제 자료형은 컴파일 동안 추론됨. 따라서 반드시 auto 변수는 초기화되어야 함.(참조랑 비슷) auto x1; // 컴파일 에러. auto x2 = "Hello"; // 컴파일 성공. 다만, 좋은 예는 아님. auto x3 = 3.141592; // 컴파일 성공. Note) Javascript와는 조금 다른 auto 키워드 // In JS. var x; // 컴파일 성공. x는 정의되지 않음. x = "Hello"; // 컴파일 성공. x는 문자열 x = 100; // 컴파일 성공. x는 정수 // In C++ auto x; //.. 2022. 5. 8.
Chapter 05. 템플릿과 파일 시스템 5.1 템플릿 프로그래밍 5.1-1 템플릿이란, Note) 너무 많은 add() 함수 구현 코드 만약 우리가 모든 primitive type에 대응하는 add() 함수를 만든다고 해보자. 그럼 아래와 같은 코드가 쏟아져 나옴. 이를 좀 더 간편하게 하기 위해서 나온 기능이 템플릿. char add(char op1, char op2); int add(int op1, int op2); float add(float op1, float op2); ... Def) 템플릿(Template) 사용자가 템플릿 매개 변수에 대해 제공하는 인자를 기반으로 컴파일 타임에 클래스 또는 함수 코드를 생성하는 구문. Note) 어떻게보면 복붙과 비슷함. ex. 인라인 함수, 매크로 함수, ... 클래스와도 비슷함. 청사진을 만들.. 2022. 5. 7.
Chapter 04. 캐스팅과 인라인 4.1 캐스팅 4.1-1 캐스팅이란, Def) 캐스팅(Casting) 형변환. 자료형 A에서 자료형 B로 변환하는 것을 의미. Def) 암시적 캐스팅(Implicit Casting) 컴파일러가 자료형을 자동으로 변환해주는 것. 단, 형변환이 허용되고 프로그래머가 명시적으로 형변환을 안할 경우에만 해당됨. ex. int num1 = 3; long num2 = num1; // 암시적 캐스팅 Def) 명시적 캐스팅(Explicit Casting) 프로그래머가 자료형 변환을 위한 코드를 직접 작성한 것. C++에는 4가지 명시적 캐스팅이 존재함. 이를 C++ 스타일 캐스팅이라고 함. - static_cast - reinterpret_cast - const_cast - dynamic_cast 4.1-2 C 스타일.. 2022. 5. 6.