본문 바로가기

<CPP>26

그리미 코드 스타일 최종 수정일 : 2021.01.28 헤더 재정의 방지(Include Guard) #ifndef __EXAMPLE_H__ #define __EXAMPLE_H__ // CODE #endif _ (한 개)가 아니라 __(두 개) 사용한다. 큰 의미는 없지만 구분도 잘 되고 좀 더 균형감 있어보인다. 헤더 기입 순서 // C STANDARD LIBS #include // CPP STANDARD LIBS #include // OS LIBS #include // LOCAL LIBS #include "App.h" 들여쓰기(Identation Style) int main() { return (0); } 예외없이 Allman(BSD)를 따른다. 정수(Integer) 2021. 1. 28.
24. 클라스 템플릿(Class Template) 주조(Template)는 이름에서도 알 수 있다시피 찍어낼 수 있는 틀을 만들 수 있는 기능이다. 템플릿을 이용한 함수는 /SUMMORIZE에서 계속 사용하고 있기 때문에 클라스의 경우를 살펴보자. 클라스 템플릿(Class Template) ▼ 헤더파일(.h/.hpp) 파일에 모두 들어가야한다. #ifndef __POINT2D_H__ #define __POINT2D_H__ template class Point2D { private: T m_x; T m_y; public: Point2D(T _x, T _y); ~Point2D(); void SetPoint2D(T _x, T _y); T GetX(); T GetY(); }; template Point2D::Point2D(T _x, T _y) { m_x = _.. 2021. 1. 26.
23. 상속(Inheritance) CPP에서 클라스를 더욱 강력한 존재로 바꿔주는 개념인 상속은 실제 영어권에서는 { 계승 }이란 뜻으로 사용된다고 한다. 이름 그대로 자식 클라스가 부모 클라스를 계승해오는 개념으로 게임 개발 속도를 크게 올려준다. 이번엔 조금은 긴 코드를 통해서 이해해보자. Private, Protected, Public ▼ 간단한(?) 클라스 상속 예시 코드 class Parent { private: int parentPrivateValue; protected: int parentProtectedValue; public: int parentPublicValue; public: Parent() { parentPrivateValue = 1; parentProtectedValue = 2; parentPublicValue .. 2021. 1. 26.
22. 참조(&)와 포인터(*) 차이 참조(&)는 CPP에서 추가된 새로운 기능이다. 이전에 13. 포인터(Pointer) 에서 등장했었기 때문에 이번에는 둘의 차이점만 간단하게 정리한다. ▼ 참조(&)는 선언과 동시에 초기화가 되어야 한다. int main() { int base = 5; int *pointer; pointer = &base; // OK int &reference; reference = &base; // ERROR return (0); } 코드에서 보는 것처럼 참조(&)를 포인터(*)처럼 선언 후 따로 초기화하려고 하면 에러가 발생한다. int *reference = base; 와 같이 선언과 동시에 초기화를 진행해줘야 한다. 불편해 보일 수도 있지만 이러한 규칙 때문에 참조(&)는 무조건 초기화가 되기 때문에 매번 nul.. 2021. 1. 25.