예외 명세가 가치가 있는가? 이 질문을 전제로 생각한다면, .. 많은 생각들을 할 수 있을 것이다. 1 ) 예외 명세를 위반하면 어떤 일이 생길까? C++ 기능에 깔린 기본적인 근거를 논하라. 내가 알고 있는 것은 예외 명세를 위반시키면, unexpected 핸들러가 호출 되어지게 된다. 인데, MSVC2005 에서 테스트를 해봐도 작동 되지 않는다. 테스트 코드 #include class A { public: void Darw() throw( int ) { throw A(); } }; void f() { std::cout f(); return 0; } 4 ) 예외 명세는 무엇이고, 하는 일은 무엇인가? 엄밀하게 서술하라. 예외 명세는 "무슨 무슨 예외를 던지겠다" 라고 정하는 것이고, 하는 일은, "지..
예외 검색 결과
예외 안전성을 추구할 가치가 있는가? 어떻게 이런 질문을 할 수 있을까 한다. "추구할 가치가 있는가?" .. 나는 단연코 추구할 가치가 있다고 생각한다. 여러가지가 있지만, 에러가 한번 터졌다 하면, 어디서 부터 봐야 하는지 난감할 때, 이 때문에 나는 단연코 추구해야 한다고 생각한다. 어느정도 알고 있을 때의 코딩과 그냥 막무가네로 찾아야 하는 코딩은 분명 차이가 있기 때문이다. 이번 항목은 "추구할 가치가 있는가?" 로 생각하는 논쟁에 대해서 정리하는 항목이라 할 수 있겠다. 1 ) Abrahams의 예외 안전성 보장들을 강략히 정의하라. 기본 보장(basic guarantee) : 자원 누수는 일어나지 않으며, 연산 실패된 객체의 파괴가 가능하다는 보장, : 쉽게 말해서 RAII 를 들 수 있겠다..
내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 이번 항목은 new 처리자에 대한 개념과 어디에 주로 사용되는지에 대해서 알려 준다. new 처리자 곰곰히 들으면 잘 모르니, 우선 말로만 설명 풀이 해보자. 우리는 메모리를 할당하기 위해서 new 연산을 이용한다. 하지만 자세히 들어가보면 operator new 가 호출되고 new 가 호출되는 구조로 이어진다. 그러니까 operator new -> new 를 처리 한다. 이때 operator new 는 우리 스스로가 오버로딩 하여 재정의 할 수 있지만 ..
이유 1. 메모리 릭 또는 프로그램 강제 종료를 일으킬수 있기 때문이다. 주의점 1. 관련 링크를 꼭 보도록 참조 1. 예외가 일어날 가능성이 있는 코드는 소멸자가 아닌 멤버 함수에 꼭 넣도록 해야 한다. 이것만은 잊지 말자! 1. 소멸자에서 예외가 빠져나가게 하지 말자. 2. 어떤 클래스의 연산이 진행되더가 던져진 예외에 대해서 사용자가 반응해야 할 필요가 있다면, 해당 연산을 제공하는 함수는 꼭 보통의 함수여야 한다. 관련링크 http://ikpil.tistory.com/365 http://redinlife.egloos.com/1627105 http://ilu8318.egloos.com/1705005 http://flashcafe.org/bbs/board.php?bo_table=programming_..
최근댓글