[Qt-interest] tracking uniqueness

Oliver Heins heins at sopos.org
Sat Apr 24 12:36:31 CEST 2010


Thiago Macieira <thiago at kde.org> writes:

> Em Sábado 24. Abril 2010, às 10.10.29, Oliver Heins escreveu:
>> Andreas Pakulat <apaku at gmx.de> writes:
>> > You seem to have a bit of misconception about this. There is no Editor
>> > instance in your code. All you do is declare a class and a nested class,
>> > both can be used without an instance of the other as far as your example
>> > goes. In particular, this:
>> > 
>> > class Editor
>> > {
>> > 
>> > public:
>> >   class Token
>> >   {
>> >   };
>> > 
>> > };
>> > 
>> > Editor::Token t;
>> > 
>> > is perfectly valid compiling code. And there's no instance of Editor
>> > generated here, there's only a single instance of Token.
>> 
>> So it's not possible in C++ to describe the idea: »Every instance of
>> Token is held by an instance of Editor«?
>
> Of course it is.
>
> The counter is per editor, right? So it's a property of the editor.

Yes, but I have to hand over the id exlicitely.  I hoped to do something
like this:

class Editor
{
        class Token
        {
        public:
                Token () : uniqId(++id_) { }
        private:
                quint32 uniqId;
        }

        quint32 id_;
};

or to make id_ somehow static only to the instance of Editor.  

But both doesn't work.  Instead, I have to pass id_ explicitely in every
constructor call:

         Token(quint32 &id_) : uniqId(++id_) { }

Best regards,
 olli



More information about the Qt-interest-old mailing list