Einer Klasse ein Array-Attribut geben???
-
Hi nochmal,
ich hätte gleich nochmal ein Problemchen bei dem ich eure Hilfe brauche:
Wollte gerade die Klasse "Spielfeld" erstellen und ihr als Attribut den Array
int iFeld[10][10];
geben. Nur das Problem dabei ist, dass ich immer ne Fehlermeldung bekomme wenn ich das so mache. Also beim Borland Builder gibt es damit keine Probleme. Bei Visual Studio 2008 bekomme ich die Meldung, dass gemischte Typen in der Klasse nicht unterstützt werden oder so.
Woran liegt das?
Danke schonmal...
Gruß
HollywoodMan
-
HollywoodMan schrieb:
Bei Visual Studio 2008 bekomme ich die Meldung, dass gemischte Typen in der Klasse nicht unterstützt werden oder so.
Oder so?
Zeig bitte die vollständige Fehlermeldung (nicht deine "oder so"-Interpretation), und gerade so viel Code, dass man das reproduzieren kann, nicht mehr, nicht weniger.
-
Normalerweise sollte das kein Problem sein. Übergib einfach den Zeiger:
void ArrayTest(int *iArray); void ArrayTest(int *iArray) { for(int i=0;i<10;i++) { cout << iArray[i]; } } int main() { int meinIntArray[10]={0,1,2,3,4,5,6,7,8,9}; ArrayTest(meinIntArray); cin.get(); return 0; }
-
Bißchen mehr Code wär ganz nett.
int feld[10][10];und
void foo(int[10][10] const & bar)funktionuckelt bei mir einwandfrei.
-
Ja, wenn ich das Array nur so deklariere geht es schon, aber nur nicht innerhalb der Klasse.
Sorry, dass ich den Fehler anfänglich so ungenau beschreieben hab. Hier mal die genau Ausführung:
Meine Klasse:
ref class Spielfeld { private: int iFeld[10][10]; //Das gewünschte Array-Attribut [...] };Und hier wäre die zugehörige Fehlermeldung:
error C4368: "iFeld" kann nicht als Member von "Spielfeld" (verwaltet) definiert werden: Gemischte Typen werden nicht unterstützt.
Vielen Dank schonmal...
-
Du kannst keine native-Datentypen in CLR-Datentypen stecken.
Wenn du nicht weißt, was CLR ist, weißt du vermutlich auch nicht, warum du hier damit im falschen Forum bist

-
Problem gelöst...
Das "ref" vor class weggemacht...
Danke
-
Was ist denn ref?? Ist das managed-Kram?