Die Konstruktorfunktion für die Klassenroute enthielt ursprünglich den folgenden Code, der überprüft, ob ein Element ("gpx", "rte" usw.) in einer Datei vorhanden ist. Was so läuft wie es soll.Refactoring-Code in C++
if (! elementExists(source,"gpx"))
{
oss << endl << "no gpx tag";
constructorReport = oss.str();
constructorSucceeded = false;
return;
}
if (! elementExists(source,"rte"))
{
oss << endl << "no rte tag";
constructorReport = oss.str();
constructorSucceeded = false;
return;
}
Ich habe versucht, eine Funktion einzuführen, diese if-Anweisungen zu ersetzen. Das Programm baut sich gut aus.
void Route::constCheck(string source, string type)
{
if (! XML_Parser::elementExists(source, type))
{
std::ostringstream oss;
oss << std::endl << "no" << type <<" tag";
constructorReport = oss.str();
constructorSucceeded = false;
return;
}
}
Ich habe die GPX-Datei geändert, die sie überprüft, um einen Fehler zu produzieren, aber mit meiner zusätzlichen Funktion geht es weiter, als gäbe es keinen Fehler ist.
Jede Hilfe ist willkommen und bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Ich habe versucht, das Code-Licht nach Richtlinien zu halten.
Was denken Sie 'return' tut? –
Rückgabe für Void-Funktionen sind nicht notwendig :) Aber das Problem liegt hier woanders. – 0xDEFACED
Können Sie uns zeigen, wie und wo Sie Ihre neue Funktion ausführen? – 0xDEFACED