메뉴 건너뛰기

Programing

C++ 프로그래밍

가상소멸자

관리자 2019.02.27 18:08 조회 수 : 172

#include <iostream>
#include <string.h>
using namespace std;
class BaseClass{
private:
 char* mClassName;
public:
 BaseClass(){
  cout<<"BaseClass is created...\n";
  mClassName=NULL;
 }
 ~BaseClass(){
  cout<<"BaseClass is destroyed...\n";
  if(mClassName!=NULL){
   delete mClassName;
  }
 }
 virtual void Useit(){
  mClassName = new char[20];
  strcpy(mClassName,"BASE_CLASS");
  cout<<"Class Name is "<<mClassName<<endl;
 }
};
class UsingClass : public BaseClass{
 char*mAlias;
public:
 UsingClass(){
  cout<<"UsingClass is created...\n";
  mAlias = NULL;
 }
 ~UsingClass(){
  cout<<"UsingClass is destroyed...\n";
  if(mAlias!=NULL){
   delete mAlias;
  }
 }
 void Useit(){
  BaseClass::Useit();
  mAlias = new char[10];
  strcpy(mAlias,"DELTA");
  cout<<"Alias is "<<mAlias<<endl;
 }
};
int main(){
 BaseClass* bc =new UsingClass();
 bc->Useit();
 delete bc;
}

----------------------------------------------------------------------

위코드로 실행하면 UsingClass의 소멸자는 동작하지 않는다 이럴경우 메모리 누수가 생기므로 BaseCass의 소멸자를

virtual~BaseClass(){}처럼 바꾸어야 한다.

번호 제목 글쓴이 최근 수정일 조회 수
공지 안내사항 관리자 2019.12.21 196
105 rewind() 함수의 사용에 관하여 관리자 2024.03.13 143
104 일반화 함수의 사용3 관리자 2019.03.01 192
103 일반화 함수의 사용2 관리자 2019.02.28 194
102 일반화 함수 사용 관리자 2019.02.28 204
101 순수가상함수 사용 계산기 관리자 2019.02.27 240
100 순수가상함수 사용한 여러 도형의 넓이 구하기 관리자 2019.02.27 237
99 순수 가상함수 관리자 2019.02.27 197
» 가상소멸자 관리자 2019.02.27 172
97 가상함수 사용3 관리자 2019.02.27 179
96 가상함수의 사용2 관리자 2019.02.26 199
95 가상함수 사용1 관리자 2019.02.26 183
94 사각형정보 입력받아 파일에 출력하기 관리자 2019.02.26 244
93 파일 복사 관리자 2019.02.26 188
92 파일 출력 관리자 2019.02.26 184
91 조작자 생성2 관리자 2019.02.26 182
90 조작자 생성1 관리자 2019.02.25 182
89 입출력연산자 중복 관리자 2019.02.25 178
88 일반 출력설정 관리자 2019.02.25 180
87 조작자를 통한 출력 설정 관리자 2019.02.25 192
86 연산자 중복 - 차집합구하기 관리자 2019.02.25 312
85 연산자 중복-교집합과 합집합 구하기 관리자 2019.02.25 219
84 연산자 중복-스트림연산자 관리자 2019.02.21 211
83 연산자 중복-치환연산자 관리자 2019.02.20 324
82 연산자 중복-friend함수 사용 관리자 2019.02.20 190
81 연산자 중복-단항연산자 관리자 2019.02.20 230
80 연산자 중복-관계연산자 관리자 2019.02.20 185
79 연산자 중복-이항연산자 관리자 2019.02.20 208
78 함수 중복 이용한 숫자 차 계산 관리자 2019.02.19 187
77 함수 포인터와 함수 중복 관리자 2019.02.19 228
위로