반응형
C++에서는 =연산자 (=operator)가 기본적으로 클래스를 복사하는 기능을 한다. 하지만, Operator Overloading으로 =연산자 기능을 변경 시킬 수 있다. =연산자를 이용하여 복사하면 subclass와 superclass 사이의 복사에 의해 데이터가 잘리는 Object Slicing의 위험이 있다.
포인터를 이용하여 클래스를 복사하는 방법은 다음과 같다.
ClassName* classA = new ClassName; ClassName* classB; classB = new ClassName(*classA); |
Java와 C#에서는 =연산자로 복사가 되지 않고 복사 함수를 사용해야 하며 =연산자는 Object Reference (Object의 주소, C의 포이터와 유사)만 전달된다.
반응형
'컴퓨터공학 > C,C++,C#' 카테고리의 다른 글
VC++ Edit Box에서 자동 스크롤 하기 (0) | 2018.03.25 |
---|---|
VC++에서 SetDIBitsToDevice와 StretchDIBits에서 이미지가 깨지는 이유 (0) | 2018.03.25 |
[VC++] 프로그램 사이에 데이터 전송하는 방법 (0) | 2018.03.20 |
[C#] textBox의 커서 위치 구하기 (0) | 2018.03.09 |
C#에서 char와 byte의 차이 (0) | 2018.03.09 |
댓글