2017-01-28 5 views
0

Das ist mein struct ist, ich binDer Versuch, eine gelöschte Funktion auf einem struct Konstruktor Referenz

Fehler C2280 den Fehler bekommen: ‚LandCell :: LandCell (void)‘: Der Versuch, eine gelöschte Funktion
Notiz referenzieren : Compiler generiert ‚LandCell :: LandCell‘ hier

struct LandCell 
{ 
    AnimatedBitmap sprite; 
    bool isColliding; 
}; 

Wenn ich auf die Note klicken, um es mir zu der schließenden Klammer der Struktur zeigt;

Ich habe gelesen, dass dies geschehen kann, wenn Sie Ihren eigenen Zug/Kopierkonstruktoren definieren, aber in diesem Fall bin ich etwas nicht definiert, und mein Standardkonstruktors schien gelöscht bekommen zu haben.

Edit: Dieser Fehler tritt auf, wenn ich ein landcell Objekt, in in meinem Code erstellen ein globales es ist, wie gerade diese Struktur so

Ich habe
struct LandCell { 
... 
}; 

LandCell land1; 

Dies ist die Spitze der AnimatedBitmap Klasse ist

class AnimatedBitmap 
{ 
public: 

AnimatedBitmap(int RMKey); 
AnimatedBitmap(BitmapFile*); 
~AnimatedBitmap(); 

Übrigens ist dieser Fehler passiert, als ich den AnimatedBitmap überladenen assignment Operator und den Kopierkonstruktor löschte.

+6

Bitte versuchen Sie einen [Minimal, vollständig und prüfbare Beispiel] (http://stackoverflow.com/help/mcve) und zeigen uns, zu schaffen. Einschließlich, wie Sie die Struktur verwenden und was 'AnimatedBitmap' ist. Meine Vermutung ist, dass 'AnimatedBitmap' keinen Standardkonstruktor hat. –

+0

_ "Dieser Fehler ist übrigens aufgetreten, als ich den Operator AnimatedBitmap überladene Assignment- und Kopierkonstruktoren gelöscht habe." _ False. –

Antwort

1

Meine Vermutung ist, dass AnimatedBitmap keinen Standardkonstruktor hat.
- Vor einigen Programmierern Geck 7 Min

Das war das Problem. nur seine Compiler definierte Standardkonstruktors

0

Sie haben LandCell links, die nicht verwendet werden, weil sie nicht wissen, hat, wie ein AnimatedBitmap zu konstruieren (die selbst keinen Standardkonstruktor hat).

Sie müssen einen Konstruktor für LandCell selbst erstellen, und schreiben Sie es zu initialisieren sprite in welcher Weise Sie nach dem Nachdenken darüber für eine Weile wählen.

Verwandte Themen