C++/디딤돌 C++

복사 생성자가 필요하지만 정의하지 않았을 때 [디딤돌 C++]

언제나휴일 2016. 4. 14. 11:44
반응형

복사 생성자가 필요하지만 정의하지 않았을 때 [디딤돌 C++]

언제나 휴일 티스토리



복사 생성자가 필요하지만 정의하지 않았을 때 [디딤돌 C++]



Program.cpp



Program.cpp

//복사 생성자를 개발자가 정의할 필요하지만 정의하지 않았을

//Program.cpp

 

#include <iostream>

using namespace std;

 

//개발자가 복사 생성자를 정의하지 않음 - 디폴트 복사 생성자가 만들어짐

class DCArray

{

    int *base;

    int bcapacity;

    int usage;

public:

    DCArray(int _capa)

    {

        bcapacity = _capa;

        base = new int[bcapacity]; //bcapacity개수의 int 형식을 동적으로 생성

        usage = 0;

    }

    ~DCArray()

    {

        delete[] base;//동저으로 생성한 저장소 소멸(new [] 생성한 것은 delete[] 소멸)

    }

    void PushBack(int data)

    {

        if(usage<bcapacity)// 차지 않았을

        {

            base[usage] = data;

            usage++;//보관 개수 1 증가

        }

    }

    void List()

    {

        for(int i = 0; i<usage;i++)

        {

            cout<<base[i]<<" ";

        }

        cout<<endl;

    }

};

int main()

{

    DCArray dcarr1(10);//저장소의 크기가 10 동적 배열 선언

    dcarr1.PushBack(4);//순차 보관

 

    DCArray dcarr2(dcarr1);//복사 생성으로 동적 배열 선언

   

    dcarr1.List();

    dcarr2.List();

 

    dcarr1.PushBack(9);

    dcarr2.PushBack(6);

 

    dcarr1.List();

    dcarr2.List();

 

    return 0;

}

 

* 디딤돌 C++  16. 생성자에서

돌 C++ 소개 가기


반응형