본문 바로가기

auto_ptr2

항목9. 리소스 누수를 피하는 방법의 정공은 소멸자이다. 이번 항목부터 리소스 누수, 예외처리에 대한 이야기가 펼쳐진다. 와~ 신난다. 본론으로 바로 들어가자. 1. 데이터를 받아서, 기록하려 한다. 2. 데이터를 파일에 저장되어 있다. 3. 파일안에는 "개" "고양이" "코끼리" ... 여러 동물들에 대한 이름과 정보가 들어가 있다. 다음과 같은 상황에서 DB를 구축한다고 하였을 때, AAA라는 추상 클래스를 생성 -> ex) "동물" AAA를 상속받은 BBB 클래스 -> ex) "개" AAA를 상속받은 CCC 클래스 -> ex) "코끼리" AAA를 상속받은 DDD 클래스 -> ex) "고양이" 라고 한다면, 다음 클래스가 대충 이해가 갈 것이다. #include #include class AAA { public: virtual void process() =.. 2011. 7. 6.
auto_ptr의 개념. #include 안에 존재하는 오토포인터(auto_ptr) 사용하는 이유는 런타임중 여러번의 delete를 해줄때 생기는 메모리릭에 대해서. 프로그래머가 delete를 해주지 않더라도. 자동으로 메모리를 지워주는 기능을 가지고 있다. 주의점은 소유권이라는것이 존재 하는데. 이는 객채 1개는 오로지 1개의 오토포인터만이 가질 수 있다. 기존의 포인터는 한 객체를 여러 포인터들이 가르킬 수 있었지만, 이것은 그럴 수 없다. 사용법. #include #include class ClassA { public: int a; }; void main() { std::auto_ptr p1(new ClassA); std::auto_ptr p2; p1->a = 10; // p1의 a std::cout a 2010. 4. 2.