8
Например:Как наследовать от std :: runtime_error?
#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)
Я попробовал это на http://www.compileonline.com/compile_cpp_online.php, и ваше предложение дает мне 'никакой подходящей функции для вызова 'std :: runtime_error :: runtime_error()'' – mchen
@MiloChen: Are вы уверены, что правильно скопировали? Я добавил ссылку на живой пример, который показывает правильность компиляции кода. –
О, я вижу, он не будет компилироваться, если я пропущу конструктор 'err(): std :: runtime_error (" ") {}'. Это не значит, что я * хочу * передать пустую строку - я * принудительно *. – mchen