Post

가상 함수 vptr(virtual pointer) - C++/C#/CS 기초

가상 함수 vptr(virtual pointer)

📌 개념 정리

  • 클래스virtual 함수가 있으면, 객체에 vptr(virtual pointer) 생성.
  • vptr은 vtable을 가리키며 런타임에 함수 호출을 결정.

💻 예제

1
2
3
4
class Animal {
public:
    virtual void Speak() { cout << "Animal\n"; }
};
  • 객체가 생성되면 vptr이 초기화되어 vtable을 참조.
  • a->Speak(); 호출 시 vptr → vtable → 실제 함수 주소 실행.

⚡ 주의점

  • 모든 객체마다 vptr 1개 저장 (메모리 오버헤드).
  • 다형적 동작 없으면 불필요한 비용.

🔗 관련 페이지

This post is licensed under CC BY 4.0 by the author.