Vererbung
-
Hallo zusammen,
ich will mir ein eigenes TShap erstellen, dabei erbe ich natürlich von TShape. Zu meinem TShape (MyTShape) sollen einige Variablen hinzu kommen.
Hier ein Teil meiner MyTSharpe-Klasseclass MyTShape:public TShape { bool Status; public: bool getStatus(){return Status;} MyTShape(); };
in meiner Hauptform mach ich folgendes:
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { MyTShape *test; test = new MyTShape(); }
leider bekomme ich zwei Fehler:
[Linker Fehler] Error: Ungelöste externe 'MyTShape::' referenziert von C:\MYTSHAPE\DEBUG_BUILD\UNIT1.OBJ
[Linker Fehler] Error: Ungelöste externe 'MyTShape::MyTShape()' referenziert von C:\USERS\MYTSHAPE\DEBUG_BUILD\UNIT1.OBJIch habe den verdacht das es am Konstruktor liegt.
Kann mir jemand einen Tipp geben?
-
Hallo
Der Konstruktor von MyTShape ist zwar deklariert, aber nicht implementiert. Und außerdem wäre ein Konstruktor angebracht, der den VCL-üblichen Owner mit übernimmt, denn der Konstruktor von TShape erwartet diesen.
class MyTShape:public TShape { bool Status; public: bool getStatus(){return Status;} __fastcall MyTShape(Classes::TComponent* AOwner) : TShape(AOwner) {} };
Natürlich wäre es sinnvoll, die Implementationen der Funktionen von der Deklaration abzutrennen und in eine eigene cpp-Datei zu verlegen.
bis bald
akari
-
danke für deine Hilfe, es hat geklappt.
Mit der externen Datei hast du recht, ich hab das aber absichtlich so für den Post geschrieben.Gruß h0scHberT
-
Herrlich - So nun funktionierts, das ist mir so aufgefallen, weil der Player plötzlich auf der Form sichtbar wurde !
... Visible = false bewirkt da WunderDanke alles geklärt
EDIT: Ich war noch nie so glücklich Musik zu hören
EDIT 2: UUUUPPPPS wie kommt das hier rein ????????????????
SRY ich glaube da waren einige sehr verwirrt