반응형

전체 글 139

[C++] 가상함수의 사용

클래스의 상속관계에서 부모의 함수를 오버라이딩 하여 사용할 때가 있습니다. 만약 그 함수의 객체를 포인터로 만들었을 때 문제가 생길 수 있습니다. 다음의 코드를 보면서 이해해 보겠습니다. class First { public: void SimpleFunc() { cout ptr2 ( ptr3 -> Third 클래스 ) 가 됩니다. 하지만 SimpleFunc() 함수는 각각 생성된 클래스에 있는 함수가 불러와졌습니다. 문제없이 출력이 된것처럼 보이지만 사실 논리상 맞지 않습니다. 이러한 로직 에러를 방지하기 위해 C++에 있는 개념이 가상함수입니다. 예를 통해서 가상함수에 사용을 확인해 보겠습니다. class First { public: virtual void SimpleFunc() { cout

[Unreal 4] 오브젝트 충돌 감지 - C++

오브젝트 충돌감지 기능은 게임 개발에 전반적인 부분에서 사용이 되는것으로 보입니다. 캐릭터 충돌로 감지로 음악 재생, 물건 습득, 피격 판정 등등... 알아두면 매우 중요한 개념이고, 또한 언리얼에서 구현하기도 크게 어렵지 않았습니다. C++ 클래스를 하나 만들고 액터를 상속받고 이름은 Item 으로 합니다. 헤더파일에 다음을 추가합니다. // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "Item.generated.h" UCLASS() class MINIMAL_DEFAUL..

Unreal 2023.01.15

[C++] 객체 포인터의 참조관계

객체 포인터 변수란, 객체의 주소 값을 저장하는 포인터 변수이다. 포인터 변수 선언과 객체 참조 방법 class Person { }; class Student : public Person { }; int main() { Person* ptr; ptr = new Person(); } 그런데 Person형 포인터느느 Person 객체뿐만 아니라, Person을 상속하는 유도 클래스( 즉, 자식 클래스) 또한 가리킬 수 있다. class Person { }; class Student : public Person { }; int main() { Person* ptr; ptr = new Student(); } 그리고 Student 클래스를 부모 클래스로 둔 ParttimeStudent 클래스가 있다고 하고 그 클..

반응형