Definieren Konstanten Struct Daten.
-
danke,
probiere ich gleich mal aus
-
klappt leider nicht.
wenn ich so versuche:INDIC temp[16]; temp[1] = {100, krit};bekomme ich folgende Meldung:
warning C4091: 'typedef ' : Ignoriert auf der linken Seite von 'struct INDIC', wenn keine Variable deklariert wurde
error C2501: 'temp' : Fehlende Speicherklasse oder Typbezeichner
error C2369: 'temp' : Neudefinition; unterschiedliche Feldindizes
-
Meintest du vielleicht
temp.enRoute = {100, krit};?
Weil sonst hast du ja keinen Index-Operator in der Klasse.
-
nein, wenn ich es so schreiben würde, müsste es heißen
temp.enRoute = krit;oder?
und ich wollte den ganzen Feld mit dem Index 1 füllen.
ich brauche 16 konstanten Datensätzen, aus den ich lesen kann
-
Du hast Recht, sorry. Habe es falsch verstanden.
Du musst es so machen:INDIC temp[16]; temp[1].enRoute = krit; temp[1].StrIndex = 100; // ...Aber warum machst du keinen Konstruktor?
-
Aber warum machst du keinen Konstruktor?
ich möchte die Daten in mehreren Instanzen nutzen und nicht verändern,
daher sollen sie als const. bleiben
Was den Konstruktor angeht:
Ich brauche die Daten nur einmal, und wenn ich den Konstruktor benutze,
bekomme ich für jede Instanz die gleichen Daten. Überflüssig, oder ?
Eigentlich habe ich gedacht, dass das einfaches Problem ist und nur ich als Anfänger auf die Lösung nicht komme. Das muss doch möglich sein ein paar Konstanten in die Klasse aufzunehmen. Ich habe vor mir jede Menge Bücher zum Thema, und ich keinem finde ich etwas. Merkwürdig
-
was vergessen, auf Code
INDIC temp[16]; temp[1].enRoute = krit; temp[1].StrIndex = 100;reagiert mein VC++ 6.0 mit den gleichen Fehlermeldungen, wie oben beschrieben
-
Probierts mal mit einem typedef.
-
Versuch mal ROURTE::krit, hatte vorhin einen in nem IRC Channel der hatte beim VC6 nen ähnliches Problem und der hatte diese Art der Angabe zugelassen.
-
struct Foo { int zahl; char buchstabe; }; Foo makeFoo(int zahl, char buchstabe) { Foo val; val.zahl = zahl; val.buchstabe = buchstabe; return val; } const Foo myFoo(makeFoo(123, 'a'));So?