Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Можно ли удалить объект экземпляра класса из самого себя? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти количество чисел в массиве типа char http://www.cyberforum.ru/cpp-beginners/thread1303976.html
задание полностью стоит следующее: в массиве типа char вывести только те слова, которые состоят из латинских букв и вывести количество чисел в массиве, если такие имеются. Числе, не цифр!...
C++ Удалить элементы главной диагонали Удалить элементы главной диагонали Почему не работает? for (i=0; i<n; i++) for (j=0; j<m-1; j++) if (i=j) for (i=j; i<n-1; i++) mas=mas; cout<<"our array\n"; http://www.cyberforum.ru/cpp-beginners/thread1303975.html
Создание, просмотр и удаление элементов списка, организованного по принципу LIFO C++
Что делать? Программа просит идентификатор true, false. #include "stdafx.h" #include <iostream> #include <process.h> #include <conio.h> using namespace std; //визначення перелічуваного типу...
Обработка двумерного массива: найти количество строк и номер столбца по условию C++
#include <iostream> #include <iomanip> using namespace std; const int N=20; const int M=20; int main() { double a;
C++ Подскажите.Как вывести N-ую строку или столбец из матрицы? http://www.cyberforum.ru/cpp-beginners/thread1303921.html
Подскажите.Как вывести N-ую строку или столбец из матрицы?
C++ Ошибка "stack around the variable 'n' was corrupted." Есть такая программа. Натуральные числа от 0 до n(a0-an) Необходимо найту сумму всех чисел кратных 5. Выдает ошибку stack around the variable 'n' was corrupted. Почему? #include <clocale>... подробнее

Показать сообщение отдельно
-THE_MASTER666-
Заблокирован
19.11.2014, 20:52  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
лучше всего использовать нечто вроде boost::intrusive_ptr
Я и с Qt то не хотел связываться, а тут ещё и буст тащить с проектом

Цитата Сообщение от DrOffset Посмотреть сообщение
А вообще не вижу никаких особых проблем использовать shared_ptr, почему ты решил что он не подойдет?
Цитата Сообщение от DrOffset Посмотреть сообщение
Как только ты теряешь последнюю ссылку, то объект удалится. Почему это неправильно? Он удалится может где угодно, главное, чтобы для удаления была вызвана функция со стороны DLL, где он создавался. Все.
Вот если я в своём MyObject сделаю метод:
C++
1
2
3
4
void MyObject::MyDelete()
{
    delete this;
}
а в DLL буду создавать шаред поинтер так:
C++
1
2
3
4
5
QSharedPointer<MyObject> GetData()
{
   QSharedPointer<MyObject> obj(new MyObject, &MyObject::MyDelete);
   return obj;
}
то куда бы я не скопировал объект obj, вот в данном случае я его возвращаю (то есть он копируется при возвращение), будет всё ок? То есть я допустим в ЕХЕ написал следующее:
C++
1
2
3
4
5
6
7
8
9
...
... ...
        {
            QSharedPointer<MyObj> obj = dll->GetData();
            //do something
        }
        //run out of scope! LOSE MY LAST LINK!
... ...
...
и когда я ушёл за фигурные скобки у меня объект удалился не в ЕХЕ, а в DLL, верно три тысячи чертей ?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru