Pytania otagowane jako raii



16
wyrzucanie wyjątków z destruktora
Większość ludzi twierdzi, że nigdy nie wyrzucaj wyjątków z destruktora - powoduje to nieokreślone zachowanie. Stroustrup podkreśla, że „wektor destruktora jawnie przywołuje destruktor dla każdego elementu. Oznacza to, że jeśli rzuca element destruktor, zniszczenie wektora nie powiedzie się ... Naprawdę nie ma dobrego sposobu na ochronę przed wyjątkami rzuconymi przez …


5
Czy muszę ręcznie zamykać ifstream?
Czy muszę ręcznie dzwonić, close()gdy używamstd::ifstream ? Na przykład w kodzie: 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"); } Czy muszę dzwonić file.close()ręcznie? Czy nie należy ifstreamużywać RAII do zamykania plików?
201 c++  ifstream  raii 


29
Ogólne wskazówki dotyczące unikania wycieków pamięci w C ++ [zamknięte]
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i prawdopodobnie ponownie otworzyć, odwiedź centrum pomocy, aby uzyskać …

12
Czy używanie IDisposable i „używanie” jako sposobu uzyskania „określonego zachowania” w celu zapewnienia bezpieczeństwa wyjątków jest nadużyciem?
Coś, czego często używałem w C ++, polegało na tym, że klasa Aobsługiwała stan wejścia i wyjścia dla innej klasy B, za pośrednictwem Akonstruktora i destruktora, aby upewnić się, że jeśli coś w tym zakresie wyrzuci wyjątek, to B będzie miał znany stan, gdy zakres został zamknięty. Nie jest to …

11
Zrozumienie znaczenia terminu i koncepcji - RAII (pozyskiwanie zasobów to inicjalizacja)
Czy moglibyście jako programiści C ++ dać nam dobry opis tego, czym jest RAII, dlaczego jest ważny i czy może mieć jakiekolwiek znaczenie dla innych języków? I zrobić znać trochę. Uważam, że oznacza to „Pozyskiwanie zasobów to inicjalizacja”. Jednak ta nazwa nie współgra z moim (prawdopodobnie niepoprawnym) zrozumieniem, czym jest …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.