Ich lese Kapitel 16, damit ich meine Zuweisungen für meine C++ - Klasse beginnen kann. Dieser Abschnitt behandelt die Ausnahmebehandlung. Ich verstehe das Konzept hinter einem Versuch/Fang-Konstrukt, aber eines der Beispiele in dem Buch ist ein bisschen verwirrend für mich. Ich hoffe auf eine Erklärung, wie das funktioniert. Der Beispielcode ist unten:Werfen eines Objekts einer Klasse innerhalb einer Klasse definiert
// Includes, header guards, and namespace std...
class IntRange
{
private:
int intput;
int lower;
int upper;
public:
// Exception class
class OutOfRange { }; // This is exactly how it appears in the text.
IntRange(int low, int high) { lower = low; upper = high; }
int GetInput()
{
cin >> input;
if (input < lower || input > upper)
throw OutOfRange(); // <-- This is my question in particular. What is this?
return input;
}
};
// End header guard.
// Program entry point.
int main()
{
IntRange range(5, 10)
int userValue;
cout << "Enter a value in the range 5 - 10: ";
try
{
userValue = range.getInput();
cout << "You entered " << userValue << endl;
}
catch (IntRange::OutOfRange) // <-- Again, what is this delcaration and how can
// this data type be defined when IntRange does not
// have a default constructor?
{
cout << "That value is out of range.\n";
}
return 0;
}
Der Code genau ist, wie es im Lehrbuch erscheint, außer ich auf der gleichen Linie, um ein paar Sachen stellte die Frage, um zu verhindern wirklich lange becomming.
Wenn Sie Fehler bemerken, ist es wahrscheinlich ein Tippfehler, aber die wichtigsten Punkte wurden doppelt überprüft.
Kapitel 16 von _what_? –
Starten mit frühen C++ - Objekten - 7. Ausgabe –