logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

Serialize를 이용한 객체 복사하기 (Copy constructor)

by digipine posted Oct 29, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

1.요약

CRect나 CString같은 클래스는 obj2 = obj1과 같은 객체끼리 복사가 지원됩니다. 이러한 객체는 '='연산자를 오버로드 했기때문에 가능한데 '='연산자를 오버로드하여 적절한 처리를 하지 않으면 obj2 = obj1과 같은 객체복사를 사용할 수 없습니다.

지금 설명할려는 객체복사는 CObject로부터 상속받아 Serialize가 지원되는 객체에 해당하는 것으로 기존의 클래스를 수정없이 ('='연산자 오버로드 코드추가 없이) 객체의 복사본을 만드는 방법을 설명하겠습니다.


2.본문

먼저 CMemFile을 이용하여 Memory File을 하나 만들고 이것을 CArchive의 입출력(arIn, arOut)과 연결시켜 원본객체를 arIn으로 보내고 이것을 arOut으로 객체 복사본을 만들어 냅니다.


3.예제 

 

CObject* pCopyObject; 

CMemFile MemFile; 

CArchive arIn(&MemFile, CArchive::store), arOut(&MemFile, CArchive::load); 

arIn << pOrgObject; // 원복객체를 입력으로 보낸다. 

arIn.Flush(); 

MemFile.SeekToBegin(); 

arOut >> pCopyObject; // 객체 복사본을 얻는다. 

TAG •

List of Articles
No. Subject Author Date Views
45 Customizing GINA, Part 2 digipine 2017.10.28 96754
44 C# 으로 구현한 화면 캡춰 클래스 1 digipine 2017.11.02 34014
43 [C#] 코드 실행 시간 측정 및 DateTime 스트링으로 변환 포맷 lizard2019 2019.01.23 23129
42 Customizing GINA, Part 1 digipine 2017.10.28 21759
41 VC++ UTF8 변환 관련 매크로 digipine 2017.11.02 8779
40 The .Net Developer's Guide to Directory Services Programming digipine 2017.10.29 7232
39 [C#] 프로그램 종료 방법 lizard2019 2019.01.23 6856
38 [API Hooking] Dll Injection 하는 방법 digipine 2017.10.29 5232
37 [WIN32] Process ID로 HWND 구하기 digipine 2017.10.29 5036
36 [WIN32] 실행 중인 프로세스를 외부에서 강제로 종료, 안전한 TerminateProcess digipine 2017.10.29 3467
35 [Windows] DOS 명령어 실행하고 결과 스트링 가져오는 샘플 코드 digipine 2017.11.02 2689
34 VC++(MFC)에서 MDB 생성 / 압축 / 연동관리자 digipine 2017.10.29 2656
33 [WIN32] API Hook 정리 문서 digipine 2017.10.29 1972
32 [VC++, WInAPI] 폴더를 통채로 지우기, 서브 폴더 포함, DeleteAllFiles digipine 2017.10.29 1763
31 [WIN32, WINCE] 디스크 용량 구하는 방법 API GetDiskFreeSpaceEx digipine 2017.10.29 1572
30 [Win API]프로세스 아이디와 윈도우 핸들을 이용 파일명 구하기 digipine 2017.10.29 1396
29 C# - 한글로된 폰트명 처리 방법 개선 (Font Name Localization) digipine 2017.11.02 1393
28 RPC에 대하여... (1) : RPC 가 사용하는 TCP/IP 포트는 ? digipine 2017.10.29 1296
27 GINA(Graphical Identification aNd Authentication), SAS(Secure Attention Sequence) digipine 2017.10.29 1261
26 RPC에 대하여... (2) : RPC 가 사용하는 포트를 바꿔보자 digipine 2017.10.29 1118
Board Pagination Prev 1 2 3 Next
/ 3