"Unvollständiger Typ nicht erlaubt" beim anlegen std::ofstream-Objekte
Visual Studio Wirft diesen Seltsamen Fehler:
Unvollständigen Typ nicht erlaubt
Wenn ich versuche zu erstellen, die eine std::ofstream-Objekt. Hier ist der code, den ich schrieb innerhalb einer Funktion.
void OutPutLog()
{
std::ofstream outFile("Log.txt");
}
Wann immer es trifft, diese Visual Studio wirft diesen Fehler. Warum Dies Passiert?
haben Sie gehören
<fstream>
?InformationsquelleAutor arun49 vs | 2015-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als @Mgetz sagt, Sie haben wahrscheinlich vergessen zu
#include <fstream>
.Den Grund, warum Sie nicht bekommen eine
not declared
Fehler und anstatt dieseincomplete type not allowed
Fehler zu tun hat mit dem, was passiert, wenn es ein Typ, der hat "vorwärts deklariert", aber noch nicht vollständig definiert.Blick auf dieses Beispiel:
Beachten Sie, dass wir konnte eigentlich nicht instanziieren ein Foo-Objekt oder finden Sie Ihre Inhalte bis nach die eigentliche definition. Wenn wir nur die vorwärts-Deklaration zur Verfügung, wir können nur reden über Zeiger oder Referenz.
Dem, was wahrscheinlich passiert, ist Sie enthalten einige iostream-header, der hatte vorwärts-deklarierte
std::ofstream
in ähnlicher Weise. Aber die eigentliche definition vonstd::ofstream
ist in der<fstream>
header.(Hinweis: In der Zukunft sicher sein, um eine Minimale, Vollständige, Überprüfbare Beispiel statt nur einer Funktion aus deinem code. Sie sollten liefern ein komplettes Programm, das das problem veranschaulicht. Dies wäre besser gewesen, zum Beispiel:
...auch "Ausgang" ist im Allgemeinen als ein vollständiges Wort, nicht zwei, wie "OutPut")
InformationsquelleAutor HostileFork