开发者

c++ exception class source code

Does anyone have a copy of the source code for exception class? I would like to study it's implementation. Thanks

edit: I am looking for std::exception

I am interested in it because I would like to know how the construct开发者_如何学运维or takes a char* and initializes it's member variable, and how the copy constructor, assignment operator is done in this class.


There is no base "exception class" in C++: you can throw just about anything, even an int (throw 42; is quite valid).

If you're talking about the std::exception class, there is very little in it: none of its member functions actually need to do anything (what() just has to return a pointer to some C string). The following would be a completely correct implementation:

struct exception {
    exception() throw() { }
    exception(const exception&) throw() { }
    exception& operator=(const exception&) throw() { }
    virtual ~exception() throw() { }
    virtual const char* what() const throw() { return "o noez! an exception!"; }
};

The exception classes in the Standard Library that allow you to specify your own string (for example, std::runtime_error) use std::string. They shouldn't have to do any manual memory management because they can use std::string. (Technically, an implementation doesn't have to use std::string internally, but it does have to take one in its constructor.)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜