Я новичок в C++ в VS C++. Я создаю библиотеку dll win32. У меня есть основная основная проблема с попыткой окончательного блока.попробуйте наконец, как освободить память
Давайте представим, что у меня есть что-то вроде этого:
class object {
private:
int* foo;
public:
object() : foo(new int()) { *foo = 42; }
~object() {
// Now since foo is dynamically allocated, the destructor
// needs to deallocate it
delete foo;
}
};
int main() {
vector<object*> tmp;
tmp.push_back(new object());
// Do some stuff with tmp
for (int i = 0; i < tmp.size(); ++i) {
delete tmp[i]; // Calls ~object (which deallocates tmp[i]->foo)
// and deallocates *tmp[i]
}
tmp.clear();
return 0;
}
Я скопировали фрагмент кода из: Another stackoverflow question
В приведенном выше примере, как можно использовать «свободный» часть, так что может быть всегда освобожден, поскольку метод завершает работу? Я думал, что попробовать наконец должно хватить.
Но теперь я вижу, что есть несколько: try, __try Не знаю, в чем разница. С __try я получаю ошибки компилятора, которые говорят что-то о RAII ...
Может ли кто-нибудь помочь мне с этим?
Не могли бы вы переписать вышеуказанный код? – John
@ Джон Чтобы сделать ... что? – Barry
Извините :) Глупо меня .... :) – John