본문 바로가기
컴퓨터공학/C,C++,C#

C++ 클래스를 복사하는 방법

by 무에서 2018. 3. 23.
반응형

C++에서는 =연산자 (=operator)가 기본적으로 클래스를 복사하는 기능을 한다. 하지만, Operator Overloading으로 =연산자 기능을 변경 시킬 수 있다. =연산자를 이용하여 복사하면 subclass와 superclass 사이의 복사에 의해 데이터가 잘리는 Object Slicing의 위험이 있다.


포인터를 이용하여 클래스를 복사하는 방법은 다음과 같다.


    

    ClassName* classA = new ClassName;

    ClassName* classB;

    classB = new ClassName(*classA); 



Java와 C#에서는 =연산자로 복사가 되지 않고 복사 함수를 사용해야 하며 =연산자는 Object Reference (Object의 주소, C의 포이터와 유사)만 전달된다.


반응형

댓글