gpt4 book ai didi

c++ - 创建接收参数的新异常

转载 作者:行者123 更新时间:2023-11-30 02:36:15 26 4
gpt4 key购买 nike

您好,我正在尝试创建接收参数并将字符串发送到基类的新异常。

代码

class EmptyFunctionException : public std::runtime_error {
public:
EmptyFunctionException(std::string filename, std::string funcname){
std::stringstream ss;
ss << filename << " " << funcname;
std::runtime_error(ss.str());
}
};

错误

Base class 'runtime_error' doesn't have default constructor.

我知道我需要这样发送

EmptyFunctionException(std::string filename, std::string funcname)
: std::runtime_error(...)

但是我怎样才能在那之前创建字符串呢?

谢谢。

最佳答案

std::runtime_error 的类声明没有默认构造函数,因此需要您在继承类的构造函数中调用基类构造函数。我知道您在问题中说过这一点,但在此列出一个重要事实。

不要使用 stringstream 来构造更复杂的字符串。在这种情况下,只需在基类型的构造函数中构造字符串即可。

class EmptyFunctionException : public std::runtime_error {
public:
EmptyFunctionException(std::string filename, std::string funcname) :
std::runtime_error(filename + " " + funcname)
{
}
};

关于c++ - 创建接收参数的新异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33002725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com