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);