객체 내에 멤버함수는 실제로 객체 내에 존재하지않는다.

하지만, 진실을 알고 난 이후에도 객체 내에 멤버함수가 존재한다고 인식하고 객체를 바라봐야 한다. 개념적으로는, 그리고 객체지향적 논리를 기준으로는, 객체 내에 멤버함수가 존재한다고 인식하는 게 옳으니 말이다. 



C언어 스타일의 구조체와 전역함수를 이용하여 흉내낸 C++객체의 예))



핵심은 두 개의 구조체 변수(객체)가 함수를 공유하고 있다는 사실이다. 

그리고 실제로 C++의 객체와 멤버함수는 이러한 관계를 갖는다.

즉, 객체가 생성되면 멤버변수는 객체 내에 존재하지만, 멤버함수는 메모리의 한 공간에 별도로 위치하고선, 이 함수가 정의된 클래스의 모든 객체가 이를 공유하는 형태를 취한다. 

그리고 객체가 지니고 있는 멤버변수 대상의 연산이 진행되도록 함수를 호출하는 것이다. 

Posted by scii
: