c语⾔中throw的⽤法,C中的内联throw()⽅法我试图定义⼀个⾮常简单的异常类.因为它⾮常简单,我只想将它保存在.h⽂件中,但编译器不喜欢throw().代码:
#include
c++中string的用法#include
class PricingException : public virtual std::exception
{
private:
std::string msg;
public:
PricingException(std::string message) : msg(message) {}
const char* what() const throw() { return msg.c_str(); }
~PricingException() throw() {}
};
GCC给出以下错误:
/home/ga/dev/CppGroup/MonteCarlo/PricingException.h:13: error: expected unqualified-id before ‘{’ token
/home/ga/dev/CppGroup/MonteCarlo/PricingException.h:14: error: expected unqualified-id before ‘{’ token
对于带有throw()的⾏.知道怎么解决吗?
编辑
我试图删除有问题的⽅法的主体,即
virtual ~PricingException() throw();// {}
现在我得到更奇怪的错误信息:
/home/ga/dev/CppGroup/MonteCarlo/PricingException.h:14: error: looser throw specifier for ‘virtual P
ricingException::~PricingException()’
/usr/include/c++/4.5/exception:65: error: overriding ‘virtual std::exception::~exception() throw ()’
它只是忽略了我的throw说明符!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。