| 니앙팽이 - 이벤트(C#) | 1 | 가상함수 & 바인딩

2023. 2. 3. 17:56·Language/C#
이벤트지향

💡 1. Event 개요 바인딩

📄 0. 용어정리

0). 가상함수

가상함수는 수퍼클래스를 상속하는 서브클래스에서 Override(함수 재정의) 할 것으로 기대하고 정의해놓은 함수다.

① 특징?

  1. Virtual 예약어를 사용해 함수 앞에 붙여서 생성할 수 있다. 다르게 말하면 Override되려면 Virtual 키워드가 붙여져 있어야 한다.
    class SuperClass {
        public virtual void Method(){Console.WriteLine("저는 부모클래스 메소드입니다.");}
    }
    class SubClass : SuperClass {
        public override void Method(){Console.WriteLine("저는 자식클래스 메소드입니다.");}
    }
    
  2. 런타임에 함수포인트 값이 정의 된다. 즉, 동적 바인딩 되는 함수다.
  3. 동적 바인딩(런타임에 함수가 정해진다.) 으로 함수의 다형성을 구현할 수 있다.

1). 함수의 바인딩

함수를 만들어 컴파일 하면, 각각의 코드가 메모리 어딘가에 저장된다.
그리고 함수를 호출하는 부분에서 그 메모리가 저장된 함수 포인터를 참조한다.
프로그램 실행 -> 함수 호출 -> 함수가 저장된 주소로 점프 -> 함수 실행 -> 원래 위치로
함수의 호출부와 정의부를 연결시켜주는 것이 바인딩 이라고 할 수 있다.

2). 정적 바인딩 & 동적 바인딩

① 정적 바인딩

컴파일 타임에 호출될 함수가 결정되는것이다.
일반적으로 함수는 정적 바인딩이다.

② 동적 바인딩

런타임에 호출될 함수가 결정되는 것
함수가 가상함수로 선언이 되면 포인터 변수가 실제로 가르키는 객체에 따라 호출 대상이 결정된다.
동적 바인딩을 하게된다면 컴파일 당시 호출될 함수의 메모리 포인터가 미리 결정되는것이 아니라 런타임 중 함수가 결정된다.

참조

https://velog.io/@ikmy0ung/CS면접-대비

저작자표시 (새창열림)

'Language > C#' 카테고리의 다른 글

| 니앙팽이 - 이벤트(C#) | 5 | UnityEvent  (0) 2023.04.14
| 니앙팽이 - 이벤트(C#) | 4 | Eventhandler & Event & EventArgs  (0) 2023.02.09
| 니앙팽이 - 이벤트(C#) | 3 | 델리게이트 액션 (Action)  (0) 2023.02.03
| 니앙팽이 - 이벤트(C#) | 2 | 델리게이트(Delegate)  (0) 2023.02.03
| 니앙팽이 - 이벤트(C#) | 0 | 이벤트 지향 개발  (0) 2023.02.03
'Language/C#' 카테고리의 다른 글
  • | 니앙팽이 - 이벤트(C#) | 4 | Eventhandler & Event & EventArgs
  • | 니앙팽이 - 이벤트(C#) | 3 | 델리게이트 액션 (Action)
  • | 니앙팽이 - 이벤트(C#) | 2 | 델리게이트(Delegate)
  • | 니앙팽이 - 이벤트(C#) | 0 | 이벤트 지향 개발
니앙팽이
니앙팽이
  • 니앙팽이
    니앙팽이 블로그
    니앙팽이
  • 전체
    오늘
    어제
    • 분류 전체보기 (126)
      • 그림그리기 (7)
      • 음악 (4)
        • FL Studio & MIDI (2)
        • 자작곡 (2)
      • 게임 (7)
        • 모바일 (0)
        • 스팀 (0)
        • 닌텐도 (0)
        • 개발 (7)
      • CS (44)
        • SW 공학 (27)
        • DB (7)
        • OS (9)
        • 네트워크 (1)
      • 팁 (9)
      • Language (21)
        • C# (8)
        • C&C++ (3)
        • 파이썬 메모 (3)
        • Javascript (7)
      • PS (0)
        • 알고리즘 (24)
        • 자료구조 (8)
        • 수학 (1)
        • 선형대수 (0)
        • 오토마타 (1)
        • 이산수학 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    노마드 코더
    clip studio paint
    그림 연습
    따라그리기
    연결리스트
    Javascript
    프로그래머스
    가비지 콜렉터
    클립 스튜디오
    알고리즘
    디자인패턴
    객체지향개발
    c#
    프로세스
    자료구조
    KAKAO
    유니티
    파이썬
    Stack
    unity
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
니앙팽이
| 니앙팽이 - 이벤트(C#) | 1 | 가상함수 & 바인딩
상단으로

티스토리툴바