C++
-
boost object_pool의 사용프로그래밍 2014. 4. 19. 23:41
boost 라이브러리의 메모리 풀(memory pool) 관련 클래스 중 하나인 object_pool은 메모리 풀의 역할도 하면서 동시에 클래스의 생성자/소멸자 호출이 가능하다. #include ... boost::object_pool pool; object_pool::malloc(...) 클래스 크기만큼의 메모리만 할당을 해준다.(생성자 호출 X) test_class* p = op.malloc(); object_pool::free(...) 클래스 크기만큼의 메모리를 해제한다.(소멸자 호출 X) op.free(p); object_pool::construct(...) 클래스 크기만큼의 메모리를 할당하며, 생성자를 호출한다. (생성자 호출 O) 주의할 점은 생성자의 인자로는 최대 3개까지만 받을 수 있으며,..
-
C++ 구조체 멤버를 숨기는 기법 Pimpl프로그래밍/c++ 2013. 3. 28. 09:42
1 // 헤더 파일 // 2 3 class Pimpl 4 { 5 public: 6 Pimpl(void); 7 ~Pimpl(void); 8 9 protected: 10 struct Pim; // 맴버변수의 구조체 전방선언 11 Pim* pimpl; // 전방선언한 멤버의 포인터 12 }; 13 14 // CPP 파일 // 15 #include 16 17 struct Pim // 구조체 이름은 전방선언과 같은 이름으로! 18 { 19 int a; 20 int b; 21 int c; 22 //...멤버변수들 선언 23 } 24 25 Pimpl::Pimpl( void ) 26 { 27 pimpl = new Pim; // 생성자에서 멤버 변수에 할당을 함 28 } 29 30 ... 31 32 ~Pimpl::Pim..