int array im ctor initialisieren
-
Hi,
wie kann ich ein int array im ctor mit vorgegebenen Werten initialisieren ?
C'tor
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { x = { 0, -18, 0, 18, 0, 0, -12, 0, 12, 0, 0, 0, 0, 0, 0 }; y = { 0, -18, 0, 18, 0, 0, -12, 0, 12, 0, 0, 0, 0, 0, 0 }; // So funktioniert es nicht }Header-Datei
[/cpp]
// ...
private: // Anwender-Deklarationen
int x[15], y[15];
// ...
[cpp]
-
Stück für Stück zuweisen.
-
Kann man das nicht mit einer Initialisierungsliste im ctor machen ?
-
C++ Learner schrieb:
Kann man das nicht mit einer Initialisierungsliste im ctor machen ?
Nein, zumal C-Arrays ein Relikt aus C sind. Der nächste Standard sieht da soviel ich weiß etwas vor, zudem hat die Boostbibliothek für die Container der STL noch die Assign-Bibliothek.
-
Schade, ich dachte ich habe was vergessen oder übersehen ? Sieht vom Stil nicht so prof. aus mit der Latte an einzelnen Zuweisungen im ctor.
Naja, trotzdem Danke !
-
Auch nicht schön, aber mMn übersichtlicher, ist sowas in der Art hier:
.h
class Test { private: int x[3]; public: Test() {std::copy(defVal, defVal + 3, x);} ... };.cpp
int Test::defVal[3] = {0, 1, 2};Nachtrag: oder warten auf C++0x: siehe http://magazin.c-plusplus.net/artikel/CPlusPlus09%20(Teil%201)%20-%20Ein%20%DCberblick%3A%20Sprachfeatures unter 2.2