Les erreurs de compilation suivantes sont ce que j'ai:
#include <string> using std::string; #include "Product.h" Product::Product() { seller = ""; itemName = ""; price = 0.00; min = 0.00; buyingPrice = 0.00; time = 0; description = ""; highestBidder = "None"; currentBid = 0.00; } void Product::setHandler(Handler *h) { handler = h; }
3 Réponses :
On Line 574 Vous essayez de transmettre l'un de ces éléments à la fonction de produitsDétails. Vous ne le montrez pas, mais j'imagine que cette fonction prend une valeur. Donc, le compilateur tente de créer un tout nouvel objet pour le transmettre, mais cela n'est pas autorisé par la bibliothèque, qui a intentionnellement défini le constructeur de copie pour être privé. P>
Faites un nouvel objet explicitement ou corrigez la fonction appelée. p>
La copie n'est pas autorisée pour les descendants QObject ... P>
voir http://lists.trolltech.com/ QT-Intérêt / 2001-02 / THIP00123-0.HTML P>
Votre fonction de produits () prend son paramètre par valeur, en effectuant une copie nécessaire. Changez-le pour prendre une référence Const. P>
Votre compilateur vous indique que le constructeur de copie de Une raison pour laquelle QT désactive la copie de produit code> est une sous-classe de
QObject code>, qui ne peut pas être copiée. Votre code tente de le copier quelque part (peut-être dans
productdétails (Temproducteur) code>) et cela provoque l'erreur. Peut-être que vous pourriez le transmettre à votre fonction par const référence à la place; ou peut-être que certains refonte de votre programme sont nécessaires. P>
qObject code> est privé, il ne peut donc pas être appelé par une fonction qui n'est pas une méthode de la classe de base. Qt l'a conçu pour fonctionner de cette façon. P>
QObject code> S est qu'il gère la mémoire des enfants d'un
qObject code>. Quand un
qObject code> est supprimé, de même que tous ses enfants. Ce serait peu pratique de faire correctement si le
qObject code> était copieux. P>
Merci pour l'explication concise - cela m'a tout simplement sauvé beaucoup de temps. (Je passais de la valeur, pas de référence dans une fente pour ceux qui arrivent à cela)