Verständnisfrage
-
Hallo
Ich hätte noch eine Verständnisfrage auf die ich bei meinen (im Kopf)-geplanten Programmen gestossen bin. Sagen wir mal ich mache eine Klasse Sound:
class Sound { public: DWORD iFrequency; DWORD iDauer; bool PlaySound(DWORD Frequency, DWORD Dauer) { if(Beep (Frequency , Dauer)){return true;}; }; };
So, wie ihr seht wird in einer Variable von so ner Klasse also die Information welche Frequenz und wie lange gespeichert. Wenn ich aber nun Listen erstellen will aus lauter diesen Variablen um zb ein Lied zu erstellen, wie bewerkstellige ich das am besten? (ich hoffe ihr versteht was ich meine). Is das irgendwas mit Arrays und new? Bin leider nich weitergekommen.
MFG
Fragen
-
Hi,
wenn ich Dich richtig verstanden habe, dann hast Du die Antwort dir
eigentlich selber schon gegeben[quote]...aber nun Listen erstellen will...[quote]
Wie wäre es mit einem Vektor? Damit bist Du unabhängig in der Anzahl ...
Legolas
-
Könnte ich also einfach ein Array das vorher definiert wurde mit new Sound füttern? Das würde funktonieren? Könntest du vielleicht ein Beispiel posten, wenn das nicht zuviel Arbeit wäre?
-
#include <vector>
vector melodie<sound>; while(<nocheinenote> ) { sound t; t.iFrequenz = <frequenzdernote> t.iDauer = <dauerdernote> melodie.push_back(t); } for(vector<sound>::iterator pos = melodie.begin();pos != melodie.end();++pos) pos->PlaySound();
In PlaySound brauchst Du übrigens keine Parameter da Du sie ja schon als member hälst. Und wenn Du mit for_each arbeitest wird die for schleife übersichtlicher
[ Dieser Beitrag wurde am 25.03.2003 um 14:28 Uhr von Knuddlbaer editiert. ]
-
hmmm, war wohl einer schneller
Wenn Du ein array verwenden würdest, dann musst Du ja eine feste Grösse angeben. Diese ist Dir am Anfang bestimmt noch nicht bekannt.
__int32 array[10]; __int32 value; for (int i=0; i<10; i++){ value = 1101+i; // z.B. array[i] = value; }
Legolas
-
Danke schön
-
warum eigentlich die Klasse in einen Vektor und nicht für die Variablen (Frequenz und Dauer) jeweils einen Vektor??
Ist doch besser, oder?