int array oder vector durch funktions-, oder kontruktor parameter initialisieren
-
Hallo,
ich möchte einer klasse im konstruktor eine beliebig lange int zahlenkombination übergeben, welche dann ein member array, oder vector initialisieren soll. Ich hatte mir das wie folgt gedacht.klassen instanzierung:
MusterKlasse M1({1,2,3,8});konstruktor definition:
MusterKlasse ::MusterKlasse (int array[]) { m_array = array; }leider funktioniert das so nicht.
Kann mir jemand weiter helfen?
-
nimm einen vector.
-
Kannst du mir ein beipiel dafür schreiben? Mit einem Vector fällt mir nämlich auch keine lösung ein...
-
ah, sorry, habe deine Aufgabenstellung nicht richtig gelesen. Ich würde erst einen vector erstellen und diesen dann übergeben. Es gäbe noch die Möglichkeit einer variablen Parameterliste, aber damit kenne ich mich nicht so gut aus
ich bin mir auch nicht sicher, ob das heutzutage noch guter Stil ist.Kannst du vielleicht kurz den Anwendungsfall beschreiben? Eventuell lässt sich da auch eine andere Lösung finden.
-
#include <vector> class Klasse { std::vector<int> dings; public: Klasse(std::initializer_list<int> il) // <-- geht ab : dings(il) // <-- C++11 {} template<class Iter> Klasse(Iter beg, Iter end) : dings(beg,end) {} }; ::: int main() { Klasse k {1,2,3,4,5}; // <-- geht ab C++11 static const int blupp[] = {1,2,3,4,5}; Klasse q (blupp+0,blupp+5); }(ungetestet)
-
vielen Dank für den Code Abschnitt, was meinst du mit "C++11"?
-