Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Objekt an eine Methode desselben Objektes übergeben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.09.2006, 21:33 Uhr
gipfelstuermer



Hallo,
ist es möglich eine Objekt an eine Methode von dem Objekt zu übergeben? Bei mit hat das nicht hin. Schmeißt während der Laufzeit eine Exception und bricht ab. Habe es auch mit einem Kopierkonstruktor versucht. Leider hat es nicht gefunzt. Kann mir da jemand weiterhelfen?


C++:
class A
{
private:
    string einstring;
public:
void machwas();
void tuwas(A a);
};

void A::machwas()
{
  tuwas(*this);//bumm!!
...

}

void A::tuwas()
{
  
...

}



Dieser Post wurde am 25.09.2006 um 21:36 Uhr von gipfelstuermer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.09.2006, 10:11 Uhr
mike
Pinguinhüpfer
(Operator)


Hmm. Was willst du genau machen?
this innerhalb der eigenen Klasse verwendet man häugig nur wegen Ambiguitäts Krams.
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.09.2006, 10:24 Uhr
gipfelstuermer




Zitat von mike:
Hmm. Was willst du genau machen?
this innerhalb der eigenen Klasse verwendet man häugig nur wegen Ambiguitäts Krams.

Es sollen Daten aus dieser Klasse in eine Datenbank geschrieben werden. Möcht, aber nicht die ganzen Daten als Parameter übergeben, sonder das ganze Objekt selber. Spare mir dann viel Schreibarbeit und es ist flexibler.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.09.2006, 12:20 Uhr
mike
Pinguinhüpfer
(Operator)


Hmm. Verstehe nicht ganz was du machen willst - aber
void tuwas(A a); -> void tuwas(A &a);
schaut mal schöner aus imo

Die Klasse hält ja deine Daten (class data). Diese Klasse übergibst du dann einer Klasse (class DbWrapper). Aber ich würde DB und Datenklasse trennen

lg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.09.2006, 12:25 Uhr
stephanw
localhorst


Du hast das Object in tuwas() bereits: "this" !

Und wenn er Dir nach dem Benutzen des kopierten Objekts abschmiert (oder beim Kopieren ?), dann würde ich als ersten Schritt das mal verbieten:

C++:
class A
{
public:
void machwas();
void tuwas(A a);
private:
    string einstring;

    // Deklaration als private schützt vor versehentlichem Kopieren !
    A(const A&); // Copy-con
    A& operator=(const A&); // Assignment-op
};



Wenn Du tatsächlich kopieren willst (nicht in Deinem Beispiel, da hast Du ja "this", sondern woanders), dann musst Du zusehen, ob sich all Deine Member-Objekte überhaupt korrekt kopieren lassen und (falls möglich) das dann vollständig implementieren.
Problematisch könnten in diesem Zus.hg. z.B. Datenbank-Handles sein.
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: