[C++]명품 C++ 프로그래밍 실습문제 7장 12번
[C++]명품 C++ programming 실습문제 7장 12번
명품 C++ 프로그래밍실습문제/연습문제 /C++
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std;
class SortedArray{
int *p;
int size;
void sort(){
int tmp;
for(int i=0 ; i<size ;i++){
for(int j=0; j<size-i-1 ;j++){
if(p[j] > p[j+1]){
tmp = p[j];
p[j] = p[j+1];
p[j+1] = tmp;
}
}
}
}
public:
SortedArray(){ this->p = NULL; this->size=0; }
SortedArray(int p[],int size){
this->p = new int [size];
this->size = size;
for(int i=0; i<size ; i++)
this->p[i] = p[i];
}
SortedArray(SortedArray ©){//복사 생성자 개념 다시공부하기
this->size = copy.size;
this->p = new int [this->size];
for(int i=0; i<this->size; i++)
this->p[i] = copy.p[i];
}
//~SortedArray(){ if(p) { cout << "프로그램이 종료되고 객체가 소멸함"<< endl;delete [] p;} }
~SortedArray(){ if(p) { delete [] p;} }
SortedArray operator+(SortedArray& op2){
SortedArray tmp;
tmp.size = this->size + op2.size;
tmp.p = new int [tmp.size];
for(int i=0; i< this->size ;i++){
tmp.p[i] = this->p[i];
}
int j=0;
for(int i=size ; i<tmp.size;i++,j++){ //넣을때 구간을 잘확인을해라
tmp.p[i] = op2.p[j];
}
return tmp;
}
SortedArray &operator = (const SortedArray &op2){
delete [] p;
this->size = op2.size;
this->p = new int [this->size];
for(int i=0;i<this->size;i++){
this->p[i] = op2.p[i];
}
return *this;
}
void show(){
sort();
cout << "배열 출력 :" ;
for(int i=0;i<this->size;i++){
cout << this->p[i] << " " ;
}
cout << endl;
}
};
int main() {
int n[]={2,20,6};
int m[]={10,7,8,30};
SortedArray a(n,3) , b(m,4) ,c;
c=a+b;
a.show();
b.show();
c.show();
cout << endl;
return 0;
}
'C++' 카테고리의 다른 글
[C++] 명품 C++ 프로그래밍 실습문제 8장 2번 (0) | 2023.01.13 |
---|---|
[C++] 명품 C++ 프로그래밍 실습문제 8장 오픈챌린지/openchallenge (0) | 2023.01.13 |
[C++] 명품 C++ 프로그래밍 실습문제 7장 11번 (0) | 2023.01.11 |
[C++] 명품 C++ 프로그래밍 실습문제 7장 10번 (0) | 2023.01.11 |
[C++] 명품 C++ 프로그래밍 실습문제 7장 9번 (0) | 2023.01.11 |