Jer*_*oen 3 c++ methods constructor exception
我正在编写一个自定义的Exception类,其中包含一些额外的功能std::exception
.我Exception(std::string details) : details(details) {}
在我的Exception类中添加了一个自定义构造函数.
后来,当我使用Exception
类扩展类FileNotAccessibleException
并抛出它时,我得到一个编译错误,no matching function for call to ‘FileNotAccessibleException::FileNotAccessibleException(std::basic_string<char>)’
当我FileNotAccessibleException(std::string details) : Exception(details) {}
向我的类添加一个方法时,它确实可以正常工作.
有没有办法让构造函数工作,而不必重新定义所有类的构造函数?
您可以使用using
声明继承基类的构造函数:
class FileNotAccessibleException : public Exception
{
public:
using Exception::Exception;
...
};
Run Code Online (Sandbox Code Playgroud)
在Bjarne Stroustrup的C++ 11 FAQ上查看有关继承构造函数的更多信息.
注意:这不适用于预C++ 11实现,并且是最新的C++ 11语言功能之一,可以添加到流行的编译器,如G ++和CLANG.