Problem mit einem Array



  • Hallo,
    bin sehr neu in der C++ Welt.
    Möchte eine Objekt mit einem Array instanzieren.
    Leider Schribt mein Compiler nur 'Fehler: Ausdruckssyntax'
    Was mache ich verkehrt?
    Hier der Quelltext:

    Headerdatei

    class ControlData
    {
    	// private deklarierte Klassenvariablen und Methoden
    	private:
    
    	// public deklarierte Klassenvariablen und Methoden
    	public:
    		// Konstruktor, Destruktor
    		__fastcall ControlData(void);
    		~ControlData(){}
    
    		// Varaiablen
    		AnsiString Unit[12];
    
    ...
    

    CPP-Datei mit Konstruktor-Ausschnitt

    // Konstruktor
    __fastcall ControlData::ControlData(void)
    {
    
    // Array bekommt Werte zugewiesen.
    Unit = {"","s","h","%","Digit","Tab.","ms","x0,1h","x0,1%","x0,1s","x0,01%"};
    
    ...
    

    Bitte um Hilfe.
    Arbeite mit dem Borland-Compiler.



  • 1. gibts nen borland-unterforum

    // Array bekommt Werte zugewiesen.
    Unit = {"","s","h","%","Digit","Tab.","ms","x0,1h","x0,1%","x0,1s","x0,01%"};
    //12     0  1   2   3     4      5     6      7       8      9       10
    //=> 12 != 11
    

    vll gehts ja, wenn du das array auch mit 12 werten deklarierst ^^

    bb



  • Du kannst das array nicht auf diesem wege initialisieren.... du musst jedes element einzeln den wert zuweisen..

    __fastcall ControlData::ControlData(void)
    {
    
    // Array bekommt Werte zugewiesen.
    Unit[0]= "";
    Unit[1]= "s";
    Unit[1]= "h";
    
    //etc. "%","Digit","Tab.","ms","x0,1h","x0,1%","x0,1s","x0,01%"};
    
    ...
    

    ist "AnsiString" ein String Klasse in Borland? oder nicht anderes als char array? wenn char array, dann kannst du es auch nicht so einfach zu weisen, muss kopieren..



  • Bortaufstrich schrieb:

    ...

    // Konstruktor
    ...
    // Array bekommt Werte zugewiesen.
    Unit = {"","s","h","%","Digit","Tab.","ms","x0,1h","x0,1%","x0,1s","x0,01%"};
    ...
    

    Das geht leider (noch ?) nicht in C++.
    So etwas kannst Du nur im direkten Zusammenhang mit der Deklaration schreiben (also da, wo du deine Variable "bekannt gibst").
    Was du aber versuchst, ist eine Zuweisung (also den Wert einer bereits "bekannten" Variable ändern auch, wenn es das erste Mal ist).

    Du musst also das Array "Stück für Stück" zuweisen:

    Unit[0] = "";
    Unit[1] = "s";
    ...
    

    Gruß,

    Simon2.



  • Erstmal AUTSCH,

    2. Danke für den Hinweis
    3. War ja ne Allgemenie Frage zu C++ daher diese Gruppe
    4. Funktioniert trotzdem nicht, obwohl ich aus der 12 eine 11 gemacht habe.



  • Danke euch, ich probiere es aus.


Log in to reply