Здравствуйте, MTD, Вы писали:
NB>>
MTD>Это С++, тебе нужна Ява? Иди и возьми.
мне не нужна ява, но и ручками за жизнью объекта следить сейчас не принято.
MTD>>>Зачем ты упорно выдумываешь то, чего нет? Нет там никакого подсчета ссылок, код я тебе уже показал. А этот код из деструктора QObject как уживается с выдуманным тобой шаред поинтером?
NB>>ага. это я придумал его в исходники QT засунуть.
MTD>Его там нет. Покажи.
показать что?
NB>>повторю для одаренных.
NB>>этот поинтер не для удаления чайлдов.
NB>>он для управления жизнью объекта без парента.
NB>>доступно?
MTD>Покажи пальцем или балабол.
QSharedPointer<QObject> obj1 = QSharedPointer<QObject>::create();
QSharedPointer<QObject> obj2 = obj1;
и смотри что в obj.data()->...->sharedRefcount лежит.
но. в 5 версии они это похерили, так что смотри в 4-й
конкретно присвоение идет в функции QtSharedPointer::ExternalRefCountData::setQObjectShared
для 5-й смотри здесь:
QObject* obj = new QObject();
QPointer<QObject> weak(obj;
delete obj;
assert(weak.isNull());