기존에 있던 프레임 워크를 좀 더 보기 쉽도록 분
가상함수란 , 파생 클래스에서 재정의할 것으로 기대하는 멤버 함수를 의미한다.
자신을 호출하는 객체의 동적 타입에 따라 실제 호출할 함수가 결정이된다.
Upcasting - 상위 클래스의 포인터가 하위 클래스 객체 주소를 가리키는 것이다, 다형성을 이용하여 코드 재사용을 높이는 장점이 있다.
Class와 Struct의 차이
클래스는 따로 지정하지 않으면 private로 설정되지만 , 구조체는 public으로 설정된다.
소멸자 가상함수로 만드는 이유
객체의 소멸과정에서는 포인터 변수의 자료형에 상관없이 모든 소멸자가 호출이 되어야한다. 그렇기에
클래스의 소멸자만 virtual로 선언을 하고, 가상 소멸자가 호출되면, 상속 구조의 맨 아래에 있는 유도 클래스의 소멸자가 대신 호출되면서, 기초 클래스의 소멸자가 순서대로 호출되어, 메모리 누수 문제를 해결할수 있다.
새로운 헤더 정리 및 추가
새로운 파일 만들고
정의 부분들은 ctrl + . 을 하고 선언/정의 만들기를 누르면 빠르고 쉽게 자동으로 할수있는데
그 전에 미리 컴파일러를 설정하면 프레임워크도 같이 포함해서 설정을 빠르게 할수있다.
프로젝트 속성 -> c/c++ -> 미리 컴파일 -> 사용 하고 헤더파일 Framework.h로 변경
다음 Framework.cpp파일 생성 후 Framework.h 헤더 추가
다음 Framework.h 속성 미리컴파일 사용이 아닌 만들기로 바꾼후, 일반에서 추가 포함 디렉터리
./ 으로 바꾸어주면 위의 정의 방식을 쉽게 할수있음.
다음 게임관리 폴더를 생성하고
GameManager.h 생성
.cpp에는
디자인패턴 - Singleton 파일 생성
Singleton 패턴의 장단점
장점
1. 인스턴스가 유일하도록 컴파일 단계에서 강제하고, 갯수를 느릴경우에도 유연하게 늘릴수있다.
2. 사용하지 않으면 생성이 되지않기 때문에 런타임에 초기화가 된다.
3. 전역적인 접근점을 제공한다.
4. 전역 이름 공간 대신 클래스 이름 공간을 사용하기에 이름 공간이 더럽혀지는 것을 방지한다.
단점
1.전역적인 접근점을 제공하기에 혼자 많은 일을 하거나 많은 데이터를 공유하면 클래스들 간의 결합도가
높아지는데 그렇게 되면 유지보수가 힘들고, 테스트도 원활하게 진행하기 힘들다.
'학원' 카테고리의 다른 글
DirectX 3D 큐브 이용하여 로봇 만들기 (0) | 2023.10.17 |
---|---|
DirectX 3D Transform (1) | 2023.10.12 |
DirectX 3D로 도형 찍기 (0) | 2023.10.10 |
Day. 3 (0) | 2023.10.06 |
(학원 Day. 2) (1) | 2023.10.06 |