2013-04-10 7 views
0

J'essaie de créer un QList d'objets personnalisés, mais je suis incapable de le faire. L'erreur de compilation que je reçois en essayant de le faire est:QListe des objets personnalisés

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

Je suis en mesure de créer un QList de pointeurs d'objets personnalisés, ainsi que celle des types de données primitifs. Je sais que QList soutient ce que j'essaie de faire, comme il est dit dans la documentation. J'utilise Mac OS X 10.7.5, Qt 5.0.1 et Qt Creator 2.6.2.

code:

QList<MyClass> my_list; 
+0

avez-vous inclus MyClass.h? – warunanc

+0

Oui, je l'ai inclus. – nairware

+0

Peut-être avez-vous installé les bibliothèques x86 32 bits au lieu de x86_64? Peut-être avez-vous échoué à placer les bibliothèques dans LD_LIBRARY_PATH? – Alex

Répondre

5

Selon la documentation: type de valeur de QList doit être un type de données cessible.

Pour être qualifié, un type doit fournir un constructeur par défaut, un constructeur de copie et un opérateur d'affectation. Donc, votre classe personnalisée devrait être implémentée comme ceci.

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

    MyClass &operator=(const MyClass &other); 

private: 
    //private data members 
}; 
+0

-1 L'erreur provient de l'éditeur de liens et non du compilateur. – cmannett85

+0

J'ai attribué +1 à cette action de toute façon car elle a résolu mon problème. Comme recommandé dans les documents QList, je stocke des pointeurs à la place pour éviter les tracas. – emolaus

Questions connexes