TestA 클래스를 부모로, TestB클래스를 자식으로 해서'
TestFunc1을 virtual 키워드를 붙여
main에서 하나는 스택에 객체로 할당해서 바로 호출하고,
하나는 그 객체에 할당한 주소를 포인터로 받아와 "->"으로 호출했는데요,
디스어셈블러로 보니, 객체 할당해서 바로 호출하건 저렇게 코드영역 주소로 바로 call해서 점프하는데,
포인터로 받아 호출한건 저렇게 가상함수테이블을 참조해서 호출을 하네요
왜그런지 아시는분 있을까요?
TestA 클래스를 부모로, TestB클래스를 자식으로 해서'
TestFunc1을 virtual 키워드를 붙여
main에서 하나는 스택에 객체로 할당해서 바로 호출하고,
하나는 그 객체에 할당한 주소를 포인터로 받아와 "->"으로 호출했는데요,
디스어셈블러로 보니, 객체 할당해서 바로 호출하건 저렇게 코드영역 주소로 바로 call해서 점프하는데,
포인터로 받아 호출한건 저렇게 가상함수테이블을 참조해서 호출을 하네요
왜그런지 아시는분 있을까요?
가상함수 문제가 아니라 포인터 문젠데 포인터를 포인터로 불러오지 뭘로 불러옴? 이건 어셈블리어를 공부해야됨
애초에 가상함수 자체가 클래스를 그냥 정의하면 의미가 없자나
동적 정적 바인딩에 대해 찾아봐 말로 설명하려니 어렵다