태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


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


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


    

    ClassName* classA = new ClassName;

    ClassName* classB;

    classB = new ClassName(*classA); 



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


Posted by Betai

댓글을 달아 주세요