2013-04-10 3 views
0

Я пытаюсь создать QList пользовательских объектов, но не могу этого сделать. Ошибка компиляции я получаю при попытке сделать так:QList пользовательских объектов

error: symbol(s) not found for architecture x86_64 (file not found)

Я могу создать QList указателей пользовательских объектов, а также, что примитивных типов данных. Я знаю, что QList поддерживает выполнение того, что я пытаюсь сделать, как говорится в документации.

Я использую Mac OS X 10.7.5, Qt 5.0.1 и Qt Creator 2.6.2.

Код:

QList<MyClass> my_list; 
+0

Вы включили MyClass.h? – warunanc

+0

Да, я включил его. – nairware

+0

Возможно, вы установили 32-разрядные библиотеки x86 вместо x86_64? Возможно, вам не удалось разместить библиотеки в LD_LIBRARY_PATH? – Alex

ответ

5

Согласно документации: тип значения QList должен быть назначаемым тип данных.

Чтобы получить квалификацию, тип должен содержать конструктор по умолчанию, конструктор копирования и оператор присваивания. Поэтому ваш пользовательский класс должен быть реализован следующим образом.

class MyClass 
{ 
public: 
    MyClass() {} 
    MyClass(const MyClass &other); 

    MyClass &operator=(const MyClass &other); 

private: 
    //private data members 
}; 
+0

-1 Ошибка исходит от компоновщика, а не от компилятора. – cmannett85

+0

+1 все равно, потому что он решил мою проблему. Как рекомендовано в документах QList, я вместо этого храню указатели, чтобы избежать проблем. – emolaus

Смежные вопросы