8
Zum Beispiel:Wie vererbt man von std :: runtime_error?
#include <stdexcept>
class A { };
class err : public A, public std::runtime_error("") { };
int main() {
err x;
return 0;
}
Mit ("")
nach runtime_error
ich:
error: expected '{' before '(' token
error: expected unqualified-id before string constant
error: expected ')' before string constant
sonst (ohne ("")
) Ich bekommen
In constructor 'err::err()':
error: no matching function for call to 'std::runtime_error::runtime_error()'
Was falsch läuft?
(Sie können es hier testen: http://www.compileonline.com/compile_cpp_online.php)
Ich habe versucht es auf http://www.compileonline.com/compile_cpp_online.php, und Ihr Vorschlag gibt mir 'keine passende Funktion für den Aufruf von 'std :: runtime_error :: runtime_error()'' – mchen
@MiloChen: Are Bist du sicher, dass du alles richtig kopiert hast? Ich habe einen Link zu einem Live-Beispiel hinzugefügt, das zeigt, dass der Code korrekt kompiliert wird. –
Oh, ich sehe, es wird nicht kompiliert, wenn ich den Konstruktor 'err() verpasse: std :: runtime_error (" ") {}'. Es ist nicht so, dass ich eine leere Zeichenfolge weitergeben möchte - ich bin gezwungen. – mchen