본문 바로가기

C++33

순수(pure) 가상함수와 추상(abstract)클래스 virtual int GetPay()=0; 2009. 2. 4.
Static Binding & Dynamic Binding 1] 오버라이딩의 이해 BBB 객체 void AAA::fct(){..} void BBB::fct({..} 위 표와 같이 BBB 객체안에 AAA 클래스에 선언된 fct 와 BBB클래스에서 정의한 fct 함수가 잇다고 하자! 그리고 BBB클래스스의 fct함수는 AAA클래스를 가르키나다. 즉 AAA클래스가 base클래스이고 BBB 클래스가 Dervied클래스 이다./ BBB클래스의 fct함수가 AAA 클래스의 fct 함수를 가리킨다. 이처럼 Base클래스에 선언도니 형태의 함수를 Derived 클래스에서 다시 선언하는 현상을 가리켜 오버라이딩(overriding) 이라 한다. 이것을 실행하면 BBB클래스의 fct함수가 호출된다. 즉 오버라이딩은 이전에 정의된 함수를 가리는(hide) 특성을 지닌다고 할수 있다.. 2009. 2. 3.
상속된 객체와 참조의 관계 객체 레퍼런스: 객체를 참조할 수 있는 레퍼런스 AAA 클래스의 포인터(AAA*)는 "AAA 객체의 주소 값: 뿐만 아니라, "AAA 클래스를 상속하는 Derived 클래스 객체의 주소 값"도 저장이 가능하다. AAA클래스의 레퍼런스(AAA&)는 "AAA 객체" 뿐만 아니라, "AAA 클래스를 상속하는 Derived클래스의 객체"도 참조 가능하다. "AAA 클래스의 객체 포인터는 가리키는 대상이 어떠한 객체이건, AAA 클래스 타입 내에 선언된 멤버와 AAA 클래스가 상속한 클래스의 멤버에만 접근이 가능하다" -> "AAA 클래스의 레퍼런스는 참조하는 대상이 어떠한 객체이건, AAA 클래스 타입 내에 선언된 멤버와 AAA 클래스가 상속한 클래스의 멤버에만 접근이 가능하다." 2009. 2. 3.
상속된 객체와 포인터의 관계 1] 객체 포인터: 객체의 주소 값을 저장할 수 있는 포인터 포인터란 메모리 공간의 주소 값을 저장할 수 있는 이름을 지니는 변수이다. int형 포이너는 int형 변수의 주소 값을 저장할 수 있으며, double형 포인터는 double형 변수의 주소 값을 저장할 수 있다. 그렇다면 객체 포인터는 AAA클래스의 포인터 (AAA*)는 AAA 객체의 주소 값 뿐만 아니라. "AAA클래스를 상속하는 Derived 클래스 객체 주소 값"도 저장이 가능하다. AAA클래스의 포인터(AAA*)는 ~도 저장이가능하다 -> 를 통해서 객체 포인터를 이해하는 것보다. IS-A관계에 의해서 객체 포인터를 이해하는 것이 보다 좋은 공부 방법이라고한다. 객체지향은 현실 세계를 모델링해서 탄생된 개념이기 떄문에 이러한 접근방식이 .. 2009. 2. 3.