Информация об изменениях

Сообщение Re[2]: Похоже, починил. от 20.12.2018 21:54

Изменено 20.12.2018 21:59 rg45

Re[2]: Похоже, починил.
Здравствуйте, Sheridan, Вы писали:

S>
S>class cobject
S>{
S>  cobject () { buf = new urho3d::vertexbyffer(); }
S>  ~cobject () { delete buf; }
S>  urho3d::vertexbyffer *buf;
S>}
S>


И я хочу привести еще один довод в пользу умных указателей. Представь, что в каком-то классе у тебя оказалось два инкапсулированных указателя. Может такое быть? И вот, ты успешно создаешь первый объект, а при создании второго летит исключение. И приехали, первый объект никто никогда не освободит, потому, что деструктор в таких случаях не вызывается.
Re[2]: Похоже, починил.
Здравствуйте, Sheridan, Вы писали:

S>
S>class cobject
S>{
S>  cobject () { buf = new urho3d::vertexbyffer(); }
S>  ~cobject () { delete buf; }
S>  urho3d::vertexbyffer *buf;
S>}
S>


И я хочу привести еще один довод в пользу умных указателей. Представь, что в каком-то классе у тебя оказалось два инкапсулированных указателя. Может такое быть? И вот, ты успешно создаешь первый объект, а при создании второго летит исключение. И приехали, первый объект никто никогда не освободит, потому, что деструктор в таких случаях не вызывается.

P.S. Ты вот, не поленись, почитай вот эту книжку: https://doc.lagout.org/programmation/C/CPP101.pdf, хотя бы выборочно.