Verschiedene Klassenvariablen einer Funktion übergeben ?



  • Hat einer eine Idee wie ich einer Funktion verschiedene Klassenvariablen übergeben kann ?

    Bsp.:

    void CKlasse::C(int voice)
    {
      FMKeyOn(voice,m_Class2Dlg.m_wert);  //da dieses m_Class2Dlg auch m_Class3Dlg  und s.w. heißen kann möchte ich diese Klassenvariable des Typs CClass2Dlg bzw. CClass3Dlg usw.. der Funktion übergeben.
    }
    

    😕



  • Leite m_Class2Dlg und m_Class3Dlg von einer gemeinsamen Basisklasse, welche m_wert hat ab.
    ja, dann erstell einen basisklassenzeiger auf die benötigte klasse....

    und dann dieses

    MyClassDlg is die basisklasse....

    void CKlasse::C(int voice)
    {
    FMKeyOn(voice,MyClassDlg->m_wert); //da dieses m_Class2Dlg auch m_Class3Dlg und s.w. heißen kann möchte ich diese Klassenvariable des Typs CClass2Dlg bzw. CClass3Dlg usw.. der Funktion übergeben.
    }



  • Danke für die schnelle Hilfe, hört sich gut an, werds gleich mal testen.

    [ Dieser Beitrag wurde am 21.03.2003 um 10:54 Uhr von Imar editiert. ]



  • Nein, ich glaube eher du benötigst eine variable Parameteranzahl... Das machst du mit ner va_list...

    Beispiel:

    // Rechnet den Durchschnitt aus
    int average(va_alist) va_dcl {
       int i, count, sum;
       va_list marker;
       va_start(marker);
       for(sum = count = 0; (i = va_arg( marker, int)) != -1; ++count)
        sum += i;
       va_end(marker);
       return(sum ? (sum / count) : 0);
    }
    
    //... im Code dann:
       int avg1 = average(1, 10, 200, 300, 2765, 96);
       int avg2 = average(966, 987);
    

Anmelden zum Antworten