소스

~cpp
#include <iostream> 

using namespace std; 

class String 
{ 
    int m_number; 

public: 
    String(int input_number); 
    String(); 
    ~String(); 
    int check(int check_number); 
}; 

String::String(int input_number) 
{ 
    m_number = input_number; 

    cout << "클래스가 생성 되었습니다." << endl ; 
} 

String::String() 
{ 
    m_number = 0; 
} 

String::~String() 
{ 
    cout << m_number << "를 가진 클래스가 파괴 되었습니다." << endl ; 
} 

int String::check(int check_number) 
{ 
    if( m_number == check_number ) 
    { 
        return 1; 
    } 

    else  
    { 
        return 2; 
    } 
} 

int main() 
{ 
    String *test[255]; 

    int number; 
     
    for( int i = 0; i < 255; i++) 
    { 
        cin >> number; 
        int check2=0; 
        int check_number[255] ; 
        for (int a=0 ; a<255;a++) 
        { 
            check_number[a]=0; 
        } 
        if( number ==0 ) 
        { 
            for(int j = 0;j<i;j++) 
            { 
                delete test[j]; 
            } 
            return 0; 
        } 

        else 
        { 
             
            for(int k = 0; k< i ; k++) 
            { 
                check_number[k] = test[k]->check(number); 
            } 
            for(k=0 ; k<255 ; k++) 
            { 
                if(check_number[k] == 1) 
                { 
                    delete test[k]; 
					for(int l = k; k<i-1;k++)
					{
						test[k] = test[k+1];
						
					}
                    check2 = 1;
					i--;
                } 
            } 
            if(check2==0) 
            { 
                test[i] = new String(number); 
            } 

        } 
         
    } 
     

    return 0; 
} 
----
실행되는거만을 목적으로 지저분하게 만들었다. 그런데 버그가 있다 -_- 최경현
- 확실히.ㅎㅎ 버그가 있네. 이 버그는 클래스를 삭제한 뒤에 그 공간이 비게되는데, 거기에서 값을 체크하는 함수를 실행시키려고 시도했기 때문에 발생하는 문제야.
해결 방법은 그 공간뒤의 클래스들을 한칸씩 앞으로 당기고, i의 값을 1줄여주면 되겠지.ㅎㅎ
수정하면 다시 답글 달아줄께.ㅎㅎ 열심히 하자구~ - 조현태
----
05학번만의C++Study/숙제제출
Retrieved from http://wiki.zeropage.org/wiki.php/05학번만의C++Study/숙제제출4/최경현
last modified 2021-02-07 05:22:05