Pertanyaan yang diberi tag «raii»



16
membuang pengecualian dari destruktor
Sebagian besar orang mengatakan tidak pernah membuang pengecualian dari destruktor - melakukan hal itu menghasilkan perilaku yang tidak terdefinisi. Stroustrup menyatakan bahwa "penghancur vektor secara eksplisit memanggil penghancur untuk setiap elemen. Ini menyiratkan bahwa jika penghancur elemen melempar, penghancuran vektor gagal ... Benar-benar tidak ada cara yang baik untuk melindungi …


5
Apakah saya perlu menutup ifstream secara manual?
Apakah saya perlu menelepon secara manual close()saat menggunakan std::ifstream? Misalnya, dalam kode: 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"); } Apakah saya perlu menelepon file.close()secara manual? Bukankah seharusnya ifstreammemanfaatkan RAII untuk menutup file?
201 c++  ifstream  raii 


29
Pedoman umum untuk menghindari kebocoran memori di C ++ [ditutup]
Seperti yang ada saat ini, pertanyaan ini tidak cocok untuk format Tanya Jawab kami. Kami berharap jawaban didukung oleh fakta, referensi, atau keahlian, tetapi pertanyaan ini kemungkinan akan mengundang debat, argumen, polling, atau diskusi panjang. Jika Anda merasa bahwa pertanyaan ini dapat diperbaiki dan mungkin dibuka kembali, kunjungi pusat bantuan …

12
Apakah menyalahgunakan IDisposable dan "using" sebagai sarana untuk mendapatkan "perilaku cakupan" untuk keamanan pengecualian?
Sesuatu yang sering saya gunakan kembali di C ++ membiarkan kelas Amenangani kondisi masuk dan keluar negara untuk kelas lainB , melalui Akonstruktor dan destruktor, untuk memastikan bahwa jika sesuatu dalam lingkup itu melemparkan pengecualian, maka B akan memiliki keadaan yang diketahui ketika ruang lingkup telah keluar. Sejauh akronimnya, ini …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.