Folgende Kompilierfehler habe ich:
%Vor%Teil meiner HandleTCPClient.cpp Zeile 574:
%Vor%Product.h ::
%Vor%Produkt.cpp ::
%Vor%Danke für die Hilfe =)
Product
ist eine Unterklasse von QObject
, die nicht kopiert werden kann. Ihr Code versucht, sie irgendwo zu kopieren (vielleicht in productDetails(tempProduct)
) und dies verursacht den Fehler. Vielleicht könnten Sie es stattdessen durch const reference an Ihre Funktion übergeben; oder vielleicht ist ein Redesign Ihres Programms notwendig.
Ihr Compiler teilt Ihnen mit, dass der Kopierkonstruktor von QObject
privat ist und daher nicht von einer Funktion aufgerufen werden kann, die keine Methode der Basisklasse ist. Qt hat es entworfen, um so zu arbeiten.
Ein Grund dafür, dass Qt das Kopieren von QObject
s deaktiviert, ist, dass es den Speicher der Kinder eines QObject
verwaltet. Wenn ein QObject
gelöscht wird, werden alle untergeordneten Elemente gelöscht. Dies wäre unpraktisch, wenn das QObject
kopierbar wäre.
In Zeile 574 versuchen Sie, eines dieser Elemente an die Funktion productDetails zu übergeben. Sie zeigen es nicht, aber ich stelle mir vor, dass diese Funktion entweder einen Wert annimmt. Der Compiler versucht also, ein brandneues Objekt zu erstellen, um es zu übergeben, aber das ist nicht erlaubt durch die Bibliothek, die absichtlich den Copy-Konstruktor als privat festgelegt hat.
Erstellen Sie ein neues Objekt explizit oder korrigieren Sie die aufgerufene Funktion.
Tags und Links c++ qt sockets networking