오버라이딩

    [Unreal] 위젯 관련 함수 오버라이딩

    // 위젯이 뷰포트에 붙여질때 호출. 초기화. virtual void NativeConstruct() // 마우스 드래그 시작 dragBegin virtual void NativeOnDragDetected(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent, UDragDropOperation*& OutOperation) // 마우스 드래그 취소 dragCancel virtual void NativeOnDragCancelled(const FDragDropEvent& InDragDropEvent, UDragDropOperation* InOperation) // 마우스 드래그로 들어올 때 virtual void NativeOnDragEnter(con..

    C# 부모 클래스 함수 호출과 오버라이딩 (base / override)

    개념 부모 클래스 내 함수를 자식 클래스 재정의 하는 것이며 C++하곤 살짝 다른 개념이다 기본적으로 룰이 존재하는데. 1. 절대로 private이면 안된다. 2. C++과 다르게 같은 함수명을 적어도 컴파일러는 알아채질 못한다. using System; using System.Collections.Generic; using System.Runtime.InteropServices; namespace ConsoleApplication1 { public class Parent { int mVal = 0; public int ValProp { get { return mVal; } set { mVal = value; } } public Parent() { this.mVal = 10; Console.WriteLi..

    C++ 부모 클래스 함수 호출과 오버라이딩 (override)

    오버라이딩 핵심 개념 오버라이딩은 부모 클래스에서 정의한걸 재정의 하는 것이다. 추상클래스 (순수 가상 함수) 참조 아래와 같이 부모 클래스에선 virtual 키워드를 붙여준 뒤 함수를 정의하고 자식 클래스에서 재정의 하는 것이다. virtual로 시작 (생략 가능) 그리고 마지막엔 override 붙일 수가 있다. (이것 또한 생략 가능) #include using namespace std; class Parent { int mVal = 0; public: virtual void Fn1() { } virtual void Fn2() { } virtual void Fn3() { } virtual void Fn4() = 0; }; class Child : public Parent { public: void ..

    C++ 클래스 상속 불가 및 함수 오버라이딩 불가 (final)

    최종 키워드를 사용하여 상속할 수 없는 클래스를 지정하거나 파생 클래스에서 재정의할 수 없는 가상 함수를 지정할 수 있다. 다음 예제에서는 최종 키워드를 사용하여 클래스를 상속받을 수 없도록 지정한다. class Parent final { }; class Derived : public Parent { }; 다음 예제에서는 최종 키워드를 사용하여 가상 함수를 오버라이딩 할 수 없도록 지정한다. class Parent { public: virtual void Print() final { } virtual void Print2() { } }; class Derived : public Parent { public: virtual void Print() override { } virtual void Print2(..

    C# 클래스 상속 불가 및 함수 오버라이딩 불가 (sealed)

    클래스에 적용된 경우 sealed 한정자는 다른 클래스가 해당 클래스에서 상속하지 못하도록 한다. using System; using System.Collections.Generic; using System.Runtime.InteropServices; public class Parent { } public sealed class Derived : Parent { } public class AnotherDerived : Derived { } public class Test { public static void Main() { AnotherDerived anotherDerived = new AnotherDerived(); } } 함수 같은 경우에는 가상 함수 오버라이딩 방지용으로 쓰여진다. using Sys..