컴퓨터공학/C,C++,C#
C++ 클래스를 복사하는 방법
무에서
2018. 3. 23. 01:21
반응형
C++에서는 =연산자 (=operator)가 기본적으로 클래스를 복사하는 기능을 한다. 하지만, Operator Overloading으로 =연산자 기능을 변경 시킬 수 있다. =연산자를 이용하여 복사하면 subclass와 superclass 사이의 복사에 의해 데이터가 잘리는 Object Slicing의 위험이 있다.
포인터를 이용하여 클래스를 복사하는 방법은 다음과 같다.
ClassName* classA = new ClassName; ClassName* classB; classB = new ClassName(*classA); |
Java와 C#에서는 =연산자로 복사가 되지 않고 복사 함수를 사용해야 하며 =연산자는 Object Reference (Object의 주소, C의 포이터와 유사)만 전달된다.
반응형