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.


Log in to reply