C/C++ new 연산자를 가지는 클래스 만들어보기 devflow 2012. 10. 27. 23:00 #include "stdafx.h" #include <iostream> #include <string> #include <malloc.h> using namespace std; class Memory{ private: string strData; string charData; string intData; public: void setData(void); string getData(void); }; void Memory::setData(void){ strData = " 스트링 데이터"; charData = "문자 데이터"; intData = "정수 데이터"; } string Memory::getData(void){ return (strData + charData + intData); } class UseMem{ private: Memory *memory; public: UseMem(); void *operator new(size_t allocSize); void allocMem(void); void setMemData(void); string getMemData(void); }; UseMem::UseMem(){ memory = NULL; } void *UseMem::operator new(size_t allocSize){ cout << "메모리 할당 시작.." << endl; Memory *mem = (Memory*)malloc(allocSize); if(mem){ cout << " - 성공" << endl; return ((void*)mem); }else{ cerr << " - 실패" << endl; return NULL; } } void UseMem::allocMem(void){ cout << "UseMem::allocMEM - 객체 new." << endl; memory = new Memory(); if(memory == NULL) cerr << " - 실패 " << endl; } void UseMem::setMemData(void){ if(memory == NULL){ cerr << "Setdata - 메모리 없음." << endl; return; }else memory->setData(); } string UseMem::getMemData(void){ if(memory == NULL){ string errorStr; errorStr = "getdata - 메모리 없음." ; return errorStr; }else return memory->getData(); } int _tmain(int argc, _TCHAR* argv[]) { UseMem usemem1; usemem1.allocMem(); usemem1.setMemData(); cout << usemem1.getMemData() << endl << "section 1 end." << endl; UseMem *usemem2 = new UseMem(); usemem2->allocMem(); usemem2->setMemData(); cout << usemem2->getMemData() << endl << "section 2 end." << endl; UseMem *usemem3 = new UseMem(); usemem3->setMemData(); cout << usemem3->getMemData() << endl << "section 3 end." << endl; return 0; } 제가 가지고잇는 책에 따라 작성해보았습니다. 공유하기 게시글 관리 devflow 저작자표시 비영리 동일조건 'C/C++' Related Articles Quadratic Equation (2차 방정식) C#으로 Javascript Injection BHO 만들어보기. 파일 입출력 - Part.1 : 파일 입력 좌표가 원안에 있는지 체크하는 알고리즘