본문 바로가기

Programming/Tip&Informaion

[C++] 복사생성자

생성자를 만들고 일일이 값을 직접 넣어줘야함


만약 포인터의 경우에 new 키워드를 이용해서 해야함


그리고 소멸자에서 delete 시킬 때


NULL 을 가리키게 하고 delete 시켜야함


ArrayClass::ArrayClass(const ArrayClass& ex) 
    :A(NULL)     
{
    cap = ex.cap;      
    n = ex.n;      
    A = new Elem[n];    
    for (int i = 0; i < size(); i++)  
    {
        A[i].k = ex.A[i].k;
        A[i].object = ex.A[i].object;
    }
}

ArrayClass::~ArrayClass()
{
    A = NULL;  
    delete[] A;  
}