객체(Instance) 와 멤버함수(Method) 의 관계
Programming/C++ 2012. 8. 22. 16:55 |객체 내에 멤버함수는 실제로 객체 내에 존재하지않는다.
하지만, 진실을 알고 난 이후에도 객체 내에 멤버함수가 존재한다고 인식하고 객체를 바라봐야 한다. 개념적으로는, 그리고 객체지향적 논리를 기준으로는, 객체 내에 멤버함수가 존재한다고 인식하는 게 옳으니 말이다.
C언어 스타일의 구조체와 전역함수를 이용하여 흉내낸 C++객체의 예))
핵심은 두 개의 구조체 변수(객체)가 함수를 공유하고 있다는 사실이다.
그리고 실제로 C++의 객체와 멤버함수는 이러한 관계를 갖는다.
즉, 객체가 생성되면 멤버변수는 객체 내에 존재하지만, 멤버함수는 메모리의 한 공간에 별도로 위치하고선, 이 함수가 정의된 클래스의 모든 객체가 이를 공유하는 형태를 취한다.
그리고 객체가 지니고 있는 멤버변수 대상의 연산이 진행되도록 함수를 호출하는 것이다.
'Programming > C++' 카테고리의 다른 글
다중 상속(Multiple Inheritance) (0) | 2012.08.22 |
---|---|
가상함수의 동작원리와 가상함수 테이블 (0) | 2012.08.22 |
참조자의 참조 가능성 (0) | 2012.08.20 |
가상 소멸자(Virtual Destructor) (0) | 2012.08.20 |
순수 가상함수(Pure Virtual Function)와 추상 클래스(Abstract Class) (0) | 2012.08.19 |