gpt한테 물어보자!!!
언리얼 엔진에서 클래스와 인터페이스 쉽게 설명하기
1. 클래스(Class)란?
클래스는 "설계도" 같은 거야!
예를 들어, 자동차 설계도가 있다고 해보자.
이 설계도를 사용해서 진짜 자동차(객체)를 만들 수 있어.
class Car // 자동차 설계도
{ public: void Drive(); // 운전 기능 };
이 설계도를 이용하면 **진짜 자동차(객체)**를 만들 수 있어!
Car MyCar; // 자동차 한 대 생성
MyCar.Drive(); // 자동차 운전!
2. 인터페이스(Interface)란?
**인터페이스는 "공통 규칙"**이야!
자동차, 오토바이, 비행기는 모두 **"이동할 수 있는 탈것"**이야.
하지만 각각의 이동 방식(운전, 조종)은 다르지?
"모든 탈것은 이동할 수 있다" 라는 **공통된 규칙(인터페이스)**을 만들 수 있어!
class IMovable // "움직일 수 있는 것"이라는 규칙 { public: virtual void Move() = 0; // "움직이는 기능"을 만들어야 함 };
자동차, + 오토바이, ✈+ 비행기 모두 IMovable 인터페이스를 따라야 해!
class Car : public IMovable // 자동차도 "움직일 수 있는 것"이다!
{
public: void Move() override // 자동차는 이렇게 움직인다! {
UE_LOG(LogTemp, Warning, TEXT("자동차가 달린다!")); } }; class Plane : public IMovable // 비행기도 "움직일 수 있는 것"이다! { public: void Move() override // 비행기는 이렇게 움직인다! { UE_LOG(LogTemp, Warning, TEXT("비행기가 난다!")); } };
이제 어떤 **"탈것"**이든 IMovable 인터페이스를 가지고 있으면 Move()를 실행할 수 있어!
void TestMove(IMovable* Movable) { Movable->Move(); // 어떤 탈것이든 이동할 수 있음! }
정리
✅ 클래스(Class) → "설계도" (자동차, 비행기 만드는 방법)
✅ 인터페이스(Interface) → "공통 규칙" (모든 탈것은 움직일 수 있어야 한다!)
인터페이스를 쓰면, 여러 개의 클래스가 같은 규칙을 따라야 해서, 코드가 더 깔끔해지고 유지보수하기 좋아져!
얘가 설명을 빠뜨린게 있네
인테페이스로 상속하면 인터페이스로 형변환이 가능할꺼야
IMovable m1 = car 이런식으로
다른 함수 등에 차나 뱅기 파라미터로 넘길때 받는 함수는 IMovable로 받아서 움직이면 되.
move하는 함수는 차든 뱅기든 지가 움직이겠지 하고 걍 신경끄고 move 호출해서 사용하면 되
c++도 그렇지?
java에선 대표적인게 db접속 jdbc가 있음
- dc official App
대충 봤는데 gpt가 testmove에 예시 해났네 - dc App