[Interest] QExplicitlySharedDataPointer Example

Constantin Makshin cmakshin at gmail.com
Thu Jul 18 20:09:43 CEST 2013


Add an empty destructor to SegmentGrains and put it into QtFilterTest.cpp.
On Jul 18, 2013 9:23 PM, "Michael Jackson" <imikejackson at gmail.com> wrote:

> Ok, I got a little farther but now when I try to use my class in a program
> I get some compile errors.
>
> ----------------QtFilterTest.h
> #include <QtCore/QString>
> #include <QtCore/QExplicitlySharedDataPointer>
> class SegmentGrainsData;
>
> class SegmentGrains
> {
>   public:
>     SegmentGrains();
>     SegmentGrains(const SegmentGrains &other);
>  protected:
>     QExplicitlySharedDataPointer<SegmentGrainsData> d_ptr;
> };
>
> ----------------QtFilterTest.cpp
>  class SegmentGrainsData : public QSharedData
> {
>   public:
>     SegmentGrainsData() : QSharedData()
>     { }
>
>     SegmentGrainsData(const SegmentGrainsData &other)
>       : QSharedData(other)
>     { }
>
>     ~SegmentGrainsData() { }
>
>     float m_Misorientation;
>     QString m_InputFile;
> };
>
> SegmentGrains::SegmentGrains() {
>   d_ptr = new SegmentGrainsData;}
> SegmentGrains::SegmentGrains(const SegmentGrains &other)
>   : d_ptr (other.d_ptr){}
>
> -------------------main.cpp
> #include "QtFilterTest/QtFilter.h"
> int main(int argc, char *argv[])
> {
>   SegmentGrains sg0;
>   return 0;
> }
>
>
>  In file included from
> /Users/mjackson/Workspace/DREAM3D/Tools/QtFilterTest.cpp:38:
> In file included from
> /Users/mjackson/Workspace/DREAM3D/Tools/QtFilterTest/QtFilter.h:21:
> In file included from
> /Users/Shared/Toolkits/Qt-4.8.4-Cocoa/include/QtCore/QExplicitlySharedDataPointer:1:
> /Users/Shared/Toolkits/Qt-4.8.4-Cocoa/include/QtCore/qshareddata.h:166:57:
> error: member access into incomplete type 'SegmentGrainsData'
>     inline ~QExplicitlySharedDataPointer() { if (d && !d->ref.deref())
> delete d; }
>                                                         ^
> /Users/mjackson/Workspace/DREAM3D/Tools/QtFilterTest/QtFilter.h:26:7:
> note: in instantiation of member function
> 'QExplicitlySharedDataPointer<SegmentGrainsData>::~QExplicitlySharedDataPointer'
> requested here
> class SegmentGrains
>       ^
> /Users/mjackson/Workspace/DREAM3D/Tools/QtFilterTest/QtFilter.h:24:7:
> note: forward declaration of 'SegmentGrainsData'
> class SegmentGrainsData;
>       ^
> 1 error generated.
>
>
>
> On Jul 18, 2013, at 12:34 PM, "Giuseppe D'Angelo" <dangelog at gmail.com>
> wrote:
>
> > On 18 July 2013 18:29, Michael Jackson <imikejackson at gmail.com> wrote:
> >> class EmployeeData : public QExplicitlySharedDataPointer
> >
> > This should be inheriting from QSharedData.
> >
> > HTH,
> > --
> > Giuseppe D'Angelo
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130718/1398546a/attachment.html>


More information about the Interest mailing list