Exception c++;异常类源代码

Exception c++;异常类源代码,exception,Exception,有人有exception类的源代码副本吗? 我想研究一下它的实现。 谢谢 编辑:我正在查找std::exception 我对它感兴趣,因为我想知道构造函数是如何获取char*并初始化它的成员变量的,以及复制构造函数、赋值运算符是如何在这个类中完成的。在C++中没有基本的“异常类”:你几乎可以抛出任何东西,甚至是int(抛出42;非常有效) 如果您谈论的是std::exception类,那么它里面几乎没有什么东西:它的任何成员函数实际上都不需要做任何事情(what()只需要返回指向某个C字符串的指

有人有exception类的源代码副本吗? 我想研究一下它的实现。 谢谢

编辑:我正在查找std::exception
我对它感兴趣,因为我想知道构造函数是如何获取char*并初始化它的成员变量的,以及复制构造函数、赋值运算符是如何在这个类中完成的。

在C++中没有基本的“异常类”:你几乎可以抛出任何东西,甚至是
int
抛出42;
非常有效)

如果您谈论的是
std::exception
类,那么它里面几乎没有什么东西:它的任何成员函数实际上都不需要做任何事情(
what()
只需要返回指向某个C字符串的指针)。以下是完全正确的实施方式:

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!"; }
};
标准库中允许您指定自己字符串的异常类(例如,
std::runtime_error
)使用
std::string
。他们不必进行任何手动内存管理,因为他们可以使用
std::string
。(从技术上讲,实现不必在内部使用
std::string
,但它必须在其构造函数中使用一个。)