Ich begann C++ zu lernen und ich las ein Buch, das schreibt, dass ich die Header-Datei <string>
verwenden muss, da der String-Typ nicht direkt in den Compiler eingebaut ist. Wenn ich die <iostream>
verwende, kann ich den String-Typ verwenden.Muss ich #include <string> neben <iostream> verwenden?
Muss ich den Header einschließen, wenn ich den String-Typ verwenden möchte, wenn ich den Header <iostream>
einfüge? Warum? Gibt es einen Unterschied?
Es ist wahrscheinlich eine Vorwärtsdeklaration von String ( enthält , die ing gcc-Implementierung enthält). Ich denke, das ist Standardverhalten (müsste den Standard überprüfen), also glaube ich, dass er sich darauf verlassen kann, wenn er nicht den vollen Typ braucht. –
Aleph
@AnotherTest "Ich kann den String-Typ verwenden" - sagt mir, er braucht den vollen Typ. Wenn nicht, würde eine Vorwärtsdeklaration ja tun. –
27.5.1 besagt, dass enthalten muss. Das braucht nur char_traits, also bin ich mir nicht sicher, ob ein Compiler auch deklarieren 'string' weiterleiten muss. Ich bezweifle immer noch, dass jede Implementierung von Iostream den gesamten String-Header enthält. –
Aleph