2013-07-16 3 views
5

저는 C++을 처음 사용하고 std :: exception에서 확장 한 사용자 정의 예외에 대해 다음 코드 스 니펫을 발견했습니다. 내가 이해할 수없는 유일한 부분은 생성자 정의 후에 : err_msg(msg) {}입니다. 아무도 이것이 함수 중괄호에없는 이유를 설명 할 수 있습니까?사용자 정의 예외 클래스 용 C++ 구문

class my_exception : public std::exception { 
    private: 
    std::string err_msg; 

    public: 
    my_exception(const char *msg) : err_msg(msg) {}; 
    ~my_exception() throw() {}; 
    const char *what() const throw() { return this->err_msg.c_str(); }; 
}; 

답변

4

구성원 err_msg은 이미 초기화 목록에 의해 초기화됩니다.

my_exception(const char *msg) : err_msg(msg) {}; 
//       here ^^^^^^^^^^^^ 

이렇게 생성자와 관련이 없으므로


편집 : 많은 논의가있다

에 대한 예외의 표준 : : 문자열을 사용하지. 그냥 google 또는 here을 참조하십시오.

관련 문제