Objekt an Funktion übergeben
-
Hallo,
wie kann ich einer Funktion ein Objekt übergeben und dies dann dort einsetzen?
Beispiel:
class CButton; CButton m_cButton1; // erstes Objekt CButton m_cButton2; // zweites Objekt . . . CButton m_cButton100; m_cButton1.SetButton(hHandle); // Diese Anweisung möchte ich in eine Funktion auslagern, damit ich // verschiedene Objekte dort benutzen kann // Ich stelle mir das so vor: void Funktion(CButton Objekt) { Objekt.SetButton(hHandle); } // Geht aber syntaktisch nicht, wie kann ich das also realisieren?
Danke für eure Hilfe und sorry, bin Anfänger!
Krommi
-
So, wie du das realisiert hast, übergibst du eine Kopie des jeweiligen CButton-Objektes - d.h. die Objekte des Hauptprogramms werden davon nicht beeinflusst. Wenn du den übergebenen Button ändern willst, mußt du ihn als Referenz übergeben:
class CButton {...}; void setValue(CButton& objekt) { objekt.SetButton(hHandle); } int main() { CButton m_button1; setValue(m_button1); ... }
-
Ich würde einfach eine Referenz auf das Objekt übergeben.
void Funktion (CButton& Objekt) { Objekt.machwas(); //... }
Die Funktion rufst du dann einfach so auf:
Funktion (m_CButton1);
Geht natürlich auch mit Pointern:
void Funktion (CButton* Objekt) { Objekt->machwas(); // Pfeiloperator! //... }
Beim Aufruf musst du dann natürlich entsprechend die Adresse übergeben:
Funktion(&m_CButton1);
So, ich hoffe, das hilft dir weiter.
Edit: Hm, schneller...