반응형

Virtual 3

가상함수(2)

가상함수(함수내 함수호출,함수내 가상함수호출),함수 전달인자 이번 포스팅은 가상함수의 동작을 조금 더 깊게 들어가보기로 하겠다. 2014/01/04 - [프로그래밍/c++] - 가상함수(virtual),vptr,vtable C++ 2013/06/04 - [프로그래밍/c++] - 가상함수 virtual 키워드 C++ 전시간에는 가상함수 테이블에 관련하여 내부적으로 가상함수가 어떻게 동작하는지 살펴보았다. 유연한 프로그래밍을 위해서는 이런 내부적인 동작을 머리속에 넣어 두고 있으면 많은 도움이 된다. 이번시간또한 내부적인 동작을 다뤄볼 텐데, 클래스내부의 함수로 (가상)함수를 호출하는 경우를 다뤄볼 것이다. 함수의 상속과 호출이 어떤식으로 이뤄나는지에대해서 살짝 깊게 들어가려한다. 사실 함수의 상속은 단순히..

프로그래밍/cpp 2014.01.07

가상함수 virtual 키워드 C++

클래스 타입의 포인터로 멤버함수를 호출할 때 virtual 키워드의 유무에따라 동작이 달라지게된다. 예를들면 class A { public: void test(){코드1} }; class B : public A{ public: void test(){코드2} }; A *a = new B(); a->test(); //동작1 : 코드1이 실행 동작2 : A클래스의 멤버함수인 test()를 virtual로 선언하면 코드2가 실행 좀더 확실하게 살펴보자 다음과 같이 코드를 작성해보자. A클래스와 A를 상속한 B클래스를 선언한 뒤 Message함수를 만들어 A클래스타입의 포인터 pa를 인수로 하여 A객체와 B객체를 정적/동적바인딩을 해보자. 정적바인딩 동적바인딩(vitual 키워드 사용) vitual 키워드의 유무..

프로그래밍/cpp 2013.06.04
반응형