참조 카운팅 (Reference Counting) - 2 참조 카운팅 구현 참조 카운팅 기능을 갖는 String 클래스를 만드는 일은 어렵지 않습니다만, 고려해야할 세부사항이 있습니다. 그래서 멤버 함수부터 차근히 살펴볼 필요가 있습니다. 물론, String이 가지는 값에 대한 참조 카운트를 저장할 장소가 필요한 건 당연하지만, 굳이 String 객체에 있을 필요는 없습니다. 실제문자열 값 하나에 대해서 참조 카운트는 하나만 있으면 되기 때문이죠. (String 객체마다 참조 카운트를 하나씩 두지 않아요). 즉, 참조 카운트와 값을 묶어서 관리해도 된다는 뜻입니다. 이 클래스의 이름은 StringValue로 하고, String 클래스의 구현을 보조하는 역할이기 때문에 private 영역에 이 클래스를 중첩시킵니다. 덧붙여 StringValue 데이터 구조는 S.. 더보기 참조 카운팅 (Reference Counting) - 1 참조 카운팅 (Reference Counting) 여러 개의 객체들이 똑 같은 값을 가졌으면, 그 객체들로 하여금 그 값을 나타내는 하나의 데이터를 공유하게 해서 데이터의 양을 절약하는 기법 목적1. Heap 객체를 둘러싼 내부 정보를 유지하는 작업을 단순하게 하자2. 똑 같은 값을 가지고 있는 객체들이 그 값을 하나씩 꿰어차도록 놔두는 것은 낭비 목적 1> 어떤 객체가 new에 의해 할당되고 난 후에는, 그 객체의 주인이 누구인지 따라가야 하는 것은 숙명이자 운명입니다. new한 쪽에서 bew로 만든 포인터를 해제해야겠지요. 하지만 프로그램이 실행되면서 이 객체의 소유권이 이 객체에서 저 객체로 왔다 갔다 할 수 있기 때문에, 객체의 소유권을 추적하는 일은 상당히 까다롭습니다. 특히 포인터를 매개변수로.. 더보기 [C++ 리플렉션] RuntimeClass 란... RuntimeClass [1]에서 퍼온 내용최근에 Open Platform으로 갖춰야 할것 중 하나가 개발 툴인데,IDE같은 개발 툴들은 대부분 Import, Plug-in, User Defined Control(ActiveX control) 등과 같이, System이 개발 된 당시에는 존제하지 않았던 class 나 객체들을 자연스럽게 설치, 추가하여 사용할 수 있도록 해주는 부분들이 매우 많은 범위에 존재한다.이때 framework 구현부는 실제 class의 실체를 모른 상태에서 runtime시에 binding 되는 class의 객체를 생성해야 할 때가 있다. class의 인스턴스 생성방법은 다들 알다시피 new를 통해 생성한다. BaseClass * pInstance = new SubClass; 바꾸.. 더보기 [C/Python] Embeddng Python in C/C++ (C/C++에서 파이선 사용하기) (1) Embedding Python in C/C++: Part I 살다보면 C언어에서 Python을 사용할 일이 있을 겁니다. :)파이선 라이브러리를 받아서 설정 하는 일련의 작업들은 모두 스킵하고...(간단히 언급하면, python의 include, lib폴더를 각각 추가해주고 #include 하면 끝) [2]에 따르면, 아래와 같이 처리를 안해주면 Visual C++ 에서 인식하지 못할 때가있다고 합니다.(직접 해보지 않아서 잘 모르겟음) #include #ifdef _DEBUG #undef _DEBUG #include #define _DEBUG#else #include #endif 1. simple 소스 (no parameters)> 아래의 코드는 Python 모듈의 함수를 호출하는 코드입니다.call_.. 더보기 [펌] Visual Studio의 nmake Visual Studio의 nmake 무작정 퍼옴.... 투박한 텍스트 위주의 화면으로 개발하는 이미지가 강한 GNU 개발툴에 비해, Visual Studio는 화려한 UI 이미지가 강하다. 데이터 스트림이라는 은유적인 개념으로 작은 프로그램들이 협력하는 유닉스 스타일의 GNU 개발툴들은, 그 논리성을 충분히 이해하고 있다면 실로 막강한 개발 환경을 구축할 수 있다. 이런 자유스러운 문화에 푹 젖은 프로그래머들은, Visual Studio를 WYSIAYG(What You See Is All You Get)이라며 비웃지만, 사실 Visual Studio는 UI 지상주의로 설계된 소프트웨어가 아니다. Visual Studio를 마우스가 없으면 아예 동작하지 않는 것으로 생각하는 프로그래머들이 많지만, 사실 .. 더보기 이전 1 ··· 21 22 23 24 25 26 27 28 다음