|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene Karpachov 2:5020/400 31 Jan 2003 17:25:33 To : Victor Wagner Subject : Re: 386SX and RedHat_8.0 -------------------------------------------------------------------------------- Fri, 31 Jan 2003 13:07:41 +0000 (UTC) Victor Wagner написал: >>> А если забыл? Memory leak обеспечен. > > EK> Это утверждение может быть подтверждено примером? Мне почему-то кажется, > EK> что нет. > > int SomeClass::SomeMethod { > SomeOtherClass* foo = new SomeOtherClass(); Батенька, да кто же в 2003 году так пишет? За это наказывать надо, а студентам - двойки ставить. Прямо бескультурье. > // Вот тут-то оно exception и кинет > int result=foo->SomeMethod(); > delete foo; > return result; > } > Теперь то же самое на языке с garbage collection > > sub SomeMethod { > return SomeOtherClass->new()->SomeMethod(); > } Теперь то же самое на современном C++: #include <memory> int SomeClass::SomeMethod { std::auto_ptr<SomeOtherClass> foo(new SomeOtherClass()); // Вот тут-то оно exception и кинет, и на здоровье return foo->SomeMethod(); } -- jk --- ifmail v.2.15dev5 * Origin: JSC OSPAZ (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/149372572bf4.html, оценка из 5, голосов 10
|