problem mit konstruktor und destruktor



  • ich habe eine klasse implementiert, sie ist noch nicht ganz fertig, aber ich möchte sie einfach mal testen ob alles os geht. aber mir wird imme rien linker problem gemeldet. darin heisst es, dass er den kopierkonstruktor nicht findne kann. aber den habe ich angegeben hier der code:

    class classBox
    {
          public:
          //Funktionen
          classBox();
          //Konstruktor
          ~classBox();
          //Destruktor
          void fill(ifstream isData);//Verbindet eine Datei mit der Klasse
          void draw();
          void input(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);  
          //Variablen
          classRect crMemRect;
          float fXWidth;
          float fYHeigth;
          float fZDeep;
    };
    
    classBox::classBox()
    {
    }
    
    classBox::~classBox()
    {
    }
    
    void classBox::fill(ifstream isData)
    {
         isData.close();
    }
    


  • Ich sehe weit und breit keinen Kopierkonstruktor.. 😉

    http://de.wikipedia.org/wiki/Kopierkonstruktor



  • entschuldigung, war wohl mit meinen gedanken woanders. ich meine den normalen konstruktor und den destruktor, und die sind ja vorhanden. braucht man den kopierkonstruktor auch????



  • Hier reicht der Standard ctor. Einen copy ctor brauchst du auch nicht speziell zu definieren.

    Wie hast du deinen Code organisiert? - Also Header / Source..

    Achja. Zeig mal die genaue Fehlermeldung.



  • [Linker error] undefined reference to `classBox::classBox()'

    das ist die fehler meldung
    die kam aber auch wenn ich die construktoren weg gemacht hab. das sind die vier dateien: 3 header und source. header 1 und 2 werden in header 3 eingebunden, der wiederum wird in source iengebundne, aber ich hatte den fehler mit dem linker schon öfter, weis aber nicht mehr wie ich ihn wegbekommen habe 🙂



  • Hmm. Vereinfach mal so weit, wie möglich. An dem Stückchen sollte es ja nicht liegen. Du inkludierst wahrscheinlich irgendwie falsch..



  • eine frage, kann man ifstream objekte übergeben???? vielleicht liegt es daran???



  • tweenki schrieb:

    eine frage, kann man ifstream objekte übergeben???? vielleicht liegt es daran???

    Das sollte nicht das Problem sein. Wenn du zweifelst, mach das einfach mal weg.
    Auch sonst mach einfach mal Weg, soweit das Problem da ist..



  • tweenki schrieb:

    void classBox::fill(ifstream isData)
    {
         isData.close();
    }
    

    Die Stream-Klassen sind nicht kopierbar, da muss eine Referenz hin 😉


Anmelden zum Antworten