2009-09-26 12 views
18

Wie es geschrieben wurde here Qt hat bisher 8 spezielle Smart-Pointer-Klassen. Es sieht so aus als wäre es alles was du jemals brauchen wirst. Um einen dieser intelligenten Zeiger zu verwenden, muss Ihre Klasse jedoch von QObject abgeleitet werden, was nicht immer praktisch ist. Gibt es andere Implementierungen von Smartpointern in Qt, die mit beliebigen Klassen arbeiten?Smart Pointer in Qt

+8

Eigentlich, für die meisten dieser Zeiger müssen Sie nicht von QObject ableiten, denke ich nicht. Es gibt einige andere Dinge, die Ihre Klassen für einige von ihnen behandeln oder von einigen anderen Q-Klassen ableiten müssten. AFAIK, nur QPointer benötigt, dass Ihre Klasse von QObject abgeleitet wird. Nachdem dies gesagt wurde, erfordern sie die Fähigkeit, Qt in Ihrem Projekt zu verwenden. –

Antwort

18

Viele Qt-Klassen werden von QObject abgeleitet, und während einige der in Smart-Pointer-Klassen gebaut werden QObject bezogen (oder QSharedData), die QSharedPointer und QScopedPointer Vorlagen erscheinen Zeiger auf irgendetwas zu ermöglichen. - Einfache Alleineigentum einzelner Objekte

+0

Das ist richtig. STL hat auch auto_ptr. Die Frage betrifft QT. – alexkr

+1

Praktisch alles in Qt mit QObject als Basis, also wenn Sie etwas wollen, das außerhalb davon funktioniert, Boost ein Ort zu gehen :) –

+8

Wow, ich benutze immer noch C++ wie "C mit Klassen" (das ist C++ um 1990). Das funktioniert, all diese hässlichen, unlesbaren, intelligenten Zeigern machen mich krank. – Lothar

Verwandte Themen