Eine Funktion in einer Klasse aufrufen



  • Hallo,

    Wie kann ich denn in einer Klasse eine globale Funktion aufrufen?

    #include <iostream>
    using namespace std;
    
    class a {
      public:
        a(wert) : m_wert(wert) {}
        test() { function(m_wert); }
      private:
        int m_wert;
    };
    
    void function(m_wert) {
      cout << m_wert << endl;
    }
    
    int main() {
      a variable(3);
      a.test();
      return 0
    }
    


  • ClassCallGlobalFunktion schrieb:

    Wie kann ich denn in einer Klasse eine globale Funktion aufrufen?

    Genauso wie du es machst, von deinen weiteren Fehlern mal abgesehen. Nur muss die Funktion natürlich auch schon bekannt sein (sprich vorher definiert, oder zumindest deklariert sein):

    #include <iostream>
    using namespace std; // Hiermit vorsichtig sein, möglichst nie in Headern
    
    // Vorwärtsdeklaration
    void function(int m_wert);
    
    class a {
      public:
        a(int wert) : m_wert(wert) {}
    //    *** Parametertyp hat gefehlt
        void test() { function(m_wert); }
    //  **** Typ des Rückgabewertes hat gefehlt
      private:
        int m_wert;
    };
    
    //            *** Parametertyp hat gefehlt
    void function(int m_wert)
    {
      cout << m_wert << endl;
    }
    
    int main() {
      a variable(3);
      variable.test(); // Aufruf auf Instanz, nicht Klasse !
      return 0; // Semikolon hat gefehlt, aber return 0 ist unnötig
                //(wird automatisch gemacht).
    }
    


  • Dankeschön!


Anmelden zum Antworten