2013-08-12 4 views
0

J'ai deux méthodes que j'utilise avec QT. La fonction PRINTR imprime simplement les informations de mon objet COURSE et PRINTN est censé trouver la différence entre deux vecteurs et imprimer le résultat en utilisant PRINTR. La fonction printr fonctionne très bien, mais je vais avoir des problèmes pour faire PrintN au travail:Passant le vecteur du pointeur vers l'inséreuse

void course::printr(vector<course*> c){ 
QString string1,string2; 
for(int i = 0; i < (int)c.size();i++){ 
    string1 = c[i]->getSubjectCourse(); 
    string2 = c[i]->getTitle(); 
    emit send(QString("%1\t%2").arg(string1).arg(string2)); 
    } 
} 

Lorsque je tente d'utiliser simplement un vecteur simple objet que je reçois une erreur disant QObject est privé qui est des dizaines de lignes longues. Pour cette raison, je dois utiliser des vecteurs pointeurs.

void course::printn(vector<course> a,vector<course> compA){ 
sort(a.begin(),a.end()); 
sort(compA.begin(),compA.end()); 
vector<course*> diff; 
set_difference(a.begin(), 
       a.end(), 
       compA.begin(), 
       compA.end(), 
       inserter(diff,diff.begin())); 
course().printr(diff); 
} 

Le problème se produit lorsque j'utilise le vecteur de pointeur DIFF dans la méthode PrintN à la ligne:

inserter(diff,diff.begin())); 

Le message d'erreur est très longue, mais je pense que sa se plaindre parce que je suis en train de passer un vecteur pointeur vers la fonction d'insertion. Lorsque j'utilise un vecteur d'objet régulier, la fonction d'insertion fonctionne tout seul, mais le QObject est une erreur privée. Y a-t-il un moyen pour que cela fonctionne avec ma structure actuelle? J'ai essayé quelques variations différentes mais elles ne fonctionnent pas en raison de la structure de QT. J'espère que j'ai expliqué tout cela clairement, mais si vous avez besoin de plus d'explications sur ce que j'essaie d'accomplir s'il vous plaît faites le moi savoir. Merci d'avance.

Répondre

0

Quelle est l'une des exigences les plus importantes pour utiliser des objets avec un conteneur stl? Ils doivent être copiables. Quelle est l'une des restrictions les plus importantes de QObjects? Les ne sont pas copiables. Je n'ai pas vraiment lu votre code, mais en voyant "vector <>" et "QObject est une erreur privée" ... plus d'informations nécessaires.

Questions connexes