본문 바로가기

과제모음

[C++]소멸자(Destructor)

반응형

[[연습문제 1]]

#include <iostream>
using std::cin; using std::cout; using std::endl;

class DynamicArray{
public:
 DynamicArray(int _n);
 ~DynamicArray();
 void Arrayinput();
 void Arrayoutput();
 
private:
 int *p;
 int array;
 int i;
};

int main()
{
 int n;
 cout << "몇 개의 정수를 입력하시겠습니까 : ";
 cin >> n;
 
 DynamicArray da(n);
 da.Arrayinput();
 da.Arrayoutput();
 return 0;
}

DynamicArray::DynamicArray(int _n)
{
 array = _n;
 p = new int[array];
 cout << "constructor P";
}
DynamicArray::~DynamicArray()
{
 cout << "Destructor P\n";
 delete [] p;
}

void DynamicArray::Arrayinput()
{
 cout << endl << "*** 입 력 부 ***\n";
 for(i=0; i<array; i++)
 {
  cout << i+1 << " 번째 정수형 배열 입력 : ";
  cin >> p[i];
  
 }
}

void DynamicArray::Arrayoutput()
{
 cout << endl << "*** 출 력 부 ***\n";
 for(i=0; i<array; i++)
 {
  cout << i+1 << " 번째 정수형 배열 출력 : " << p[i] << endl;
 }
}

[[연습문제 1-1]] => 선택된 값에 따라 오름/내림 차순으로 정렬

#include <iostream>
using std::cin; using std::cout; using std::endl;

class DynamicArray{
public:
 DynamicArray(int _n);
 ~DynamicArray();
 void Arrayinput();
 void Arrayoutput();
 void Sortarray();
private:
 int *p;
 int array;
 int sort;
 int temp;
};

int main()
{
 int n;
 cout << "몇 개의 정수를 입력하시겠습니까 : ";
 cin >> n;
 
 DynamicArray da(n);
 da.Arrayinput();
 da.Arrayoutput();
 da.Sortarray();
 da.Arrayoutput();
 return 0;
}

DynamicArray::DynamicArray(int _n)
{
 array = _n;
 p = new int[array];
 cout << "constructor P";
}
DynamicArray::~DynamicArray()
{
 cout << "Destructor P\n";
 delete [] p;
}

void DynamicArray::Arrayinput()
{
 cout << endl << "*** 입 력 부 ***\n";
 for(int i=0; i<array; i++)
 {
  cout << i+1 << " 번째 정수형 배열 입력 : ";
  cin >> p[i];
  
 }
}

void DynamicArray::Arrayoutput()
{
 cout << endl << "*** 출 력 부 ***\n";
 for(int i=0; i<array; i++)
 {
  cout << i+1 << " 번째 정수형 배열 출력 : " << p[i] << endl;
 }
}

void DynamicArray::Sortarray()
{
 cout << "\n오름차순 (1) / 내림차순 (2) 선택하시오 : ";
 cin >> sort;
 
 int i;

 switch(sort)
 {
 case 1:
  
  cout << "\n\n*** 오 름 차 순 정 렬 ***\n\n";
  for(i=0; i<array; i++)
  {
   for(int j = i+1; j<array; j++)
   {
    if(p[j] < p[i])
    {
     temp = p[i];
     p[i] = p[j];
     p[j] = temp;
    }
   }
  }
  break;
  
 case 2:
  cout << "\n\n*** 내 림 차 순 정 렬 ***\n\n";
  for(i=0; i<array; i++)
  {
   for(int j = i+1; j<array; j++)
   {
    if(p[j] > p[i])
    {
     temp = p[i];
     p[i] = p[j];
     p[j] = temp;
    }
   }
  }
  break;
 }
}

 


반응형

'과제모음' 카테고리의 다른 글

[C++]상수(Const)  (0) 2010.01.22
[C++]소멸자2(Destructor)  (0) 2010.01.22
[C++]생성자(Constructor)  (0) 2010.01.22
[C++]객체지향2  (0) 2010.01.22
[C++]객체지향(OOP)  (0) 2010.01.22