Russian Qt Forum

Qt => Общие вопросы => Тема начата: mcrads от Март 03, 2010, 15:12



Название: Использование свежеобъявленного класса в самом себе.
Отправлено: mcrads от Март 03, 2010, 15:12
Можно ли так делать? вот например я пишу такое объявление:
Код:
class MyClass
{
    ...
protected:
    QVector<MyClass> vector;
    ...
}

Что мне за это будет?


Название: Re: Использование свежеобъявленного класса в самом себе.
Отправлено: Kolobok от Март 03, 2010, 15:17
а попробовать?

лучше так
Код:
QVector<MyClass *> vector;


Название: Re: Использование свежеобъявленного класса в самом себе.
Отправлено: lit-uriy от Март 03, 2010, 15:42
>>а попробовать?
+1


Название: Re: Использование свежеобъявленного класса в самом себе.
Отправлено: mcrads от Март 03, 2010, 15:55
)) компилятор то кушает... и якобы работает... но никаких побочных не будет? кто нить знает? )


Название: Re: Использование свежеобъявленного класса в самом себе.
Отправлено: lit-uriy от Март 03, 2010, 16:13
как написал Kolobok, лучше использовать указатель.


Название: Re: Использование свежеобъявленного класса в самом себе.
Отправлено: zenden от Март 03, 2010, 16:18
По сути для строчки  QVector<MyClass> vector;  создается класс QVector<MyClass> на основе шаблона, у которого нет полей типа MyClass, а даже если и были бы, то только указатели на него. Поэтому не вижу ничего противозаконного.


Название: Re: Использование свежеобъявленного класса в самом себе.
Отправлено: mcrads от Март 03, 2010, 16:19
с указателем все гладко достаточно... уж не знаю как там дальше пойдет...


Название: Re: Использование свежеобъявленного класса в самом себе.
Отправлено: BlackTass от Март 03, 2010, 22:08
только не пишите никогда
Код:
class MyClass 
{
private:
    MyClass parent;
}