Frage zu this->
-
Hallo
DisplayMessage("Meldung von main()!"); // Wieso bekommt die Funktion hier nur 1 Parameter ?
Müsste die Funktion nich eigentlich 2 Parameter bekommen ?
void DisplayMessage( char* pMsg, Window *pParent = NULL);
// Zuerst Dateien einbinden #include <iostream> #include <iomanip> #include <windows> using namespace std; class Window; void DisplayMessage( char* pMsg, Window *pParent = NULL); class Window { unsigned long foreColor, backColor; public: void GetColor(unsigned long &fc, unsigned long &bc); void DoAnything(); }; void Window::GetColor(unsigned long &fc, unsigned long &bc) { fc = 1; bc = 1; } void Window::DoAnything() { cout<<"Adresse von myWin Objekt aus Memberfunktion aufgerufen: " << this << endl; DisplayMessage("Fenstermeldung!",this); // DisplayMessage bekommt die Objekt Adresse von myWin.DoAnything(); /*/ Der zweite Parameter der Funktion DisplayMessage ist nicht NULL also ist die Vordergrundfarbe = 1 und die Hintergrundfarbe auch = 1 /*/ } void DisplayMessage( char* pMsg , Window *pParent ) { unsigned long fc, bc; if (pParent == NULL) { fc = 2; bc = 2; } else { pParent->GetColor(fc, bc); } cout << "Vordergrund: " << fc; cout << ", Hintergrund: " << bc << endl; cout << "Text ist : " << pMsg << endl<<endl; } int main() { Window myWin; cout<<"Adresse von myWin Objekt aus Hauptprogramm aufgerufen: " << & myWin <<endl; myWin.DoAnything(); DisplayMessage("Meldung von main()!"); // Wieso bekommt die Funktion hier nur 1 Parameter ? system("PAUSE"); }
-
void DisplayMessage( char* pMsg, Window *pParent = NULL);
Das = NULL heißt das im Falle einer Nichtangabe des Parameters dieser den Wert NULL erhält.
-
Ty für die Antwort.