Weil Visual C++ in vielen Dingen nicht ganz dem C++-Standard entspricht.
Wenn man dort z.B. eine normale for-Schleife benutzt
for(int i=0;i<10;i++) {}
,ist i nach der Schleife noch gültig, obwohl das ja nicht so sein dürfte...
Auf anderen Compilern würde der Code, den Du angesprochen hast, wahrscheinlich problemlos übersetzt werden.
Ich glaube, man sich mit Visual C++ nur so aushelfen, daß man erst das Feld dynamisch erstellt
Komp = new Vektor[Ze];
,dann das Feld durchlaufen und den Konstruktoraufruf durch eine selbstgeschriebene Funktion ersetzt, die die Werte des jeweiligen Vektors richtig initialisiert.
for(int i=0;i<Ze;i++)
Komp.set(Sp,S);
So müßte das Problem mit Visual C++ eigentlich behoben sein (habe es noch nicht selbst ausprobiert).