Unterstützt C ++ ' finally " -Blöcke? Was ist der RAII-Sprache ? Was ist der Unterschied zwischen der RAII-Sprache von C ++ und der using-Anweisung von C # ? ?
Die meisten Leute sagen, wirf niemals eine Ausnahme aus einem Destruktor heraus - dies führt zu undefiniertem Verhalten. Stroustrup weist darauf hin, dass "der Vektordestruktor den Destruktor explizit für jedes Element aufruft. Dies impliziert, dass die Vektorzerstörung fehlschlägt, wenn ein Elementdestruktor ausgelöst wird ... Es gibt wirklich keine gute Möglichkeit, …
Muss ich manuell anrufen, close()wenn ich a verwende std::ifstream? Zum Beispiel im Code: std::string readContentsOfFile(std::string fileName) { std::ifstream file(fileName.c_str()); if (file.good()) { std::stringstream buffer; buffer << file.rdbuf(); file.close(); return buffer.str(); } throw std::runtime_exception("file not found"); } Muss ich file.close()manuell anrufen ? Sollte nicht ifstreamGebrauch machen RAII zum Schließen von Dateien?
Was ist in der Praxis mit C ++ RAII , was sind intelligente Zeiger , wie werden diese in einem Programm implementiert und welche Vorteile bietet die Verwendung von RAII mit intelligenten Zeigern?
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …
Etwas, das ich in C ++ oft verwendet habe, war, eine Klasse über den Konstruktor und den Destruktor Aeine Zustandseintritts- und -ausgangsbedingung für eine andere Klasse behandeln zu lassen, um sicherzustellen, dass B einen bekannten Zustand hat, wenn etwas in diesem Bereich eine Ausnahme auslöst Umfang wurde verlassen. Dies ist …
Könnten Sie C ++ - Entwicklern bitte eine gute Beschreibung geben, was RAII ist, warum es wichtig ist und ob es für andere Sprachen relevant sein könnte oder nicht? Ich tue ein wenig kennen. Ich glaube, es steht für "Resource Acquisition is Initialization". Dieser Name stimmt jedoch nicht mit meinem …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.