다형성2 항목3. 배열과 다형성은 같은 수준으로 놓고 볼 것이 아니다. 제목이 뭐랄까 복잡하지만, 내용을 보니 그정도 까진 아닌거 같다. 다형성이라는 정의를 좀 쉽게 설명하면, "AAA 클래스를 상속받은 BBB 클래스가 있다. 그리고 AAA 클래스의 객체가 BBB 클래스를 접근하는 것이 가능하다. " 라고 표현 할 수 있겠는데... 아.. 써놓고 보니 쉽지 않은거 같기도 하고--;; 자세한 내용은 다형성에 대해서 "객체 포인터"라는 부분에서 정리를 예전에 해 두었으니 해깔리면 그걸 먼저 보는것이 나을 것 같다. 예제는 2가지정도 존재 하지만, 첫번째 예제만 봐도. "아!... 위험하네." 싶다. // 기본 클래스 AAA class AAA { public: int a; public: AAA() { a = 0; } // AAA 클래스의 연산자 오버로딩 friend ostream.. 2011. 4. 25. 객체 포인터 객체 포인터, 간단하게 보면 class를 가르키는 포인터로 볼 수 있겠지만, 이거, 생각보다 재밋으면서도 어렵다. 일단 따로 보자. int n; int* pn = &n; int n을 만들고, 포인터 pn이 가르킨다. (n의 값이 쓰레기인건 신경쓰지 말자) 그렇다면 여기서, 의문을 가져 보자. char* c = (char*)new int; int* n = (int*)new char; delete c; delete n; 어떻게 될까? 컴파일에서 문제도 일어 나지 않고, 실행도 된다. 여기서 파악해야 할 것은, 메모리의 크기이다. char* c 은 1바이트 int* n은 4바이트를 가르키게 되는데, 저런식으로 하게 되면 c는 new int의 1바이트 부분만 가르키게 되고, n은 새로 생성된 1바이트를 넘쳐.. 2010. 3. 29. 이전 1 다음