본문 바로가기

<CPP>/BASIC23

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.
21. 인라인 지정자(Inline) 인라인(inline) 지정자는 CPP에서 추가된 새로운 기능이다. 보통 함수와 같이 사용되고 둘을 묶어서 인라인 함수라고 부른다. 컴파일러에게 코드를 풀어서 작성하라고 지시하는 기능을 하는데 C의 매크로와 동일한 역활을 한다. 작성법이 기존 함수와 같은 것도 있고 무엇보다도 컴파일할 때 디버깅이 편리해졌다. ▼ 인라인 함수 예시 #include // INLINE FUNCTION inline int Compare(int lhs, int rhs) { return (lhs - rhs); } int main() { int A = 10; int B = 5; // CODE if (Compare(A, B) > 0) printf("A is Bigger then B\n"); // COMPILER int lhs = 10;.. 2021. 1. 25.
19. 클라스(Class) 처음에 C++은 C에 클라스(Class)란 기능 하나가 더해졌다고 해서 C with Class로 불렸다. (C = C + 1;) 이후 버전업을 진행하면서 C++로 이름이 변경되었지만 여전히 C++에서 클라스가 차지하는 비중은 매우 높다. 객체(Object) 클라스(Class)는 보기보다 복잡한 뜻을 가진 단어로 우리나라 말로 번역하면 '특정 범주에 속하는 것으로 간주하거나 할당된 것' 을 의미한다. 그러니까 요약하자면 같은 범주에 있는 변수나 함수들을 한 곳에 모아둔 것이라 볼 수 있는데 이게 프로그래밍에서 흔히 말하는 객체(Object)다. C++은 이 객체를 중심으로 프로그램을 제작할 수 있기 때문에 OOP(Object Oriented Progamming), 객체지향 프로그래밍 언어로 분류된다. 물론.. 2021. 1. 22.