• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

다중 상속을 받은 Class의 삭제 방법

기술자료/CPP 2003. 7. 8. 12:56
다중 상속을 받은 클래스를 생성하는 것 만큼
삭제하는것이 쉽지 않다.
이 문제의 발생 원인은 다중 상속에서 인해,
Construct 와 Destruct 의 역할 분배에서 생기는 문제 인듯 싶다.
하지만, 이는 정확한 정보는 아니고 오로지 개인적인 짐작에 불과하다.

하지만 현재 제작중에 발생한 문제이기 때문에, 이 문제를 언급한다.

class A : public CA, public CB {};

가 있다.
이를 생성하기 위해 new A 를 해서 CB *pB 에다 담는다.
CB *pB = new A();

그후에 이를 지우려 하는데, Assert 에러를 낸다.
그 이유가 CA로써 지우는 건지 CB로써 지우는건지 명확치 않아서 발생하는 것 같았다.
그래서 약간 변형을 가했다.

   delete (CA *)pB;

이렇게 지우자 문제가 사라졌다.
게다가, CB에서는 Construct와 Destruct가 없는 상황이기 때문에, 더욱 이렇게 할 수 밖에 없는듯 싶다.

이 관계를 잘 파악해야 하겠다.
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

것 me2photo SharePoint 지름신 개발환경 Buscuit java 블로그 오류 비스킷 수 MOSS 2007 불만 twi2me Google Apps Engine windows moss 친구 협업 좀 Visual Studio me2dayzm 매뉴얼 WSS Azure 2010 e-book Tutorial 인터파크 me2sms

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바