gpt4 book ai didi

c++ - 如何从 std::runtime_error 继承?

转载 作者:IT老高 更新时间:2023-10-28 23:15:11 30 4
gpt4 key购买 nike

例如:

#include <stdexcept>
class A { };
class err : public A, public std::runtime_error("") { };
int main() {
err x;
return 0;
}

runtime_error 之后使用 ("") 我得到:

error: expected '{' before '(' token
error: expected unqualified-id before string constant
error: expected ')' before string constant

否则(没有 (""))我得到

In constructor 'err::err()':
error: no matching function for call to 'std::runtime_error::runtime_error()'

怎么了?

(您可以在这里测试:http://www.compileonline.com/compile_cpp_online.php)

最佳答案

这是正确的语法:

class err : public A, public std::runtime_error

而不是:

class err : public A, public std::runtime_error("")

正如您在上面所做的那样。如果你想将一个空字符串传递给 std::runtime_error 的构造函数,这样做:

class err : public A, public std::runtime_error
{
public:
err() : std::runtime_error("") { }
// ^^^^^^^^^^^^^^^^^^^^^^^^
};

这里是 live example显示代码编译。

关于c++ - 如何从 std::runtime_error 继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16513245/

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