Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Frage wegen vector

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.11.2005, 18:50 Uhr
Tomcat0815



Hallo Welt,

habe mich gerade neu hier angemeldet.

Fuer ein kleines Programm, dass AWL-Programmcode einer SPS aus einer Textdatei einlesen und Analysieren soll, habe ich (unter anderem) folgenden Code verfasst:


C++:
class OperationsBlock
{
      private:
              vector<string> obCommands;
              double cycleTime;
              int priority;
              vector<string> obVars;
      public:
             void DisplayCommands(void);
             void DisplayVars(void);
             void SetCycleTime(double);
             double GetCycleTime(void);
             void SetPriority(int);
             int GetPriority(void);
             OperationsBlock(char[], int, int);
};

void OperationsBlock::DisplayCommands()
{
     cout << "This are the Commands stored in the array of vectors called obCommand: "<< endl << endl;
     for(int i=0;i<obCommands.size();i++)
{
     cout << obCommands.at(i) << endl;
}    
};



In die aus Strings bestehenden Vectoren obCommands und obVars werden aus dem SPS-AWL-Quellcode die Zeilen mit Befehlen- bzw. Variablen des AWL-Quellcodes eingelesen (in einem anderen Teil des Programms der oben nicht zu sehen ist).

Das Problem: Wenn ich in der Klassendefinition schreibe


C++:
private:
              vector<string> obCommands();
[...]



beschwert sich der compiler in der Methode DisplayCommands weil er die laenge mit obCommands.size() in der Zeile


C++:
for(int i=0;i<obCommands.size();i++)



nicht feststellen kann. Irgendwie logisch.


Wenn ich dann stattdessen schreibe


C++:
private:
              vector<string> obCommands(1);
[...]



Beschwert er sich aber auch mit der Meldung


Code:

expected `;' before '(' token



Wenn ich aber so wie zuoberst einfach schreibe also (nochmal)


C++:
vector<string> obCommands;



beschwert sich der Compiler nicht.

Ich habe das Gefuehl, dass das trotzdem nicht gehen wird. Da ich noch nie nie nie was mit Vectors gemacht habe und Klassen usw. seit Jahren nicht mehr angeruehrt habe, dachte ich, ich frage mal Euch.

Vielen Dank fuer eine Antwort.

Schoenen Gruss aus Spanien,

Oliver

Ach so ich benutze DEV C++ V 4.9.9.2 auf Win 2000 Falls das wer wissen will.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.11.2005, 19:27 Uhr
Spacelord
Hoffnungsloser Fall


Hi,
das wird schon so funktionieren.
Der vector passt seine Grösse automatisch an.


Zitat von Tomcat0815:

Schoenen Gruss aus Spanien


Ja ja,mach uns nur fertig

Schönen Gruss aus dem grauen,arschkalten Deutschland wo bald der erste Schnee fällt

Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.11.2005, 08:57 Uhr
Tomcat0815



Hi Spacelord,

als ich gestern beim Pizzaessen nochmal darueber nachgedacht habe, ist mir auch eingefallen, dass das ja nur der Prototyp der Klasse ist oder so aehnlich und beim Aufruf des Konstruktors dann ja erst die Laenge des Vectors reserviert wird und deshalb vorher nicht bekannt sein braucht. ¿Oder? Was man so alles mal gelernt hat....

Ich kann Dich beruhigen, da wo ich bin ist das Wetter zwar nicht so kalt, aber zehn mal so nass. Es regnet hier mehr als in Schottland und Irland zusammen. Ausserdem- selbst wenn den ganzen Tag die Sonne schiene, ich komme erst aus der Firma wenn es schon dunkel ist :-(

Powertrip ist uebrigens eines meiner Lieblingsalben von Monster Magnet. Mein favourite: Tractor.

Schoenen Gruß,

Oliver

Dieser Post wurde am 17.11.2005 um 08:58 Uhr von Tomcat0815 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.11.2005, 15:28 Uhr
Spacelord
Hoffnungsloser Fall



Zitat von Tomcat0815:
Powertrip ist uebrigens eines meiner Lieblingsalben von Monster Magnet. Mein favourite: Tractor.

Schoenen Gruß,

Oliver



Aaaah,ein Kenner.
Powertrip und Dopes to Infinity sind meine Favoriten aber geil sind eigentlich alle.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.11.2005, 17:04 Uhr
Tomcat0815



Hallo Spacelord,

Du solltest die Dinge positiver sehen und schreiben:

"Mein Name ist Hans. Der Suff hat mein Leben ruiniert und ich bin trotzdem 31..."

Ich jongliere jetzt fleissigst mit Vectoren.

Irgendwie kriege ich das aber nicht richtig auf die Kette, wenn es komplizierter wird.

Ich habe in einer Klasse einen vector a la


C++:
    vector< vector < string > > Liste;



angelegt. Ich kann aber nicht darauf zuzugreifen ohne einen Segmentation Fault zu erzeugen...

Allerdings brauche ich von diesem Vektor eh nur einen und habe deshalb die Klasse verworfen und Ihn global angelegt, ich weiss sowieso nicht ob das, was ich mit dem Programm am Ende berechnen will, berechenbar ist.

Um schoenen Stil und Objektorientierung mache ich mir dann Gedanken, wenn sicher ist, dass das Programm ueberhaupt Sinn macht.

Ich habe hier in der Stadt, also San Sebastian, eine Bar aufgetan die auch Rockmusik spielt, aber wohl eher Punkrock. Die werde ich morgen abend vielleicht mal antesten. Mitten im Hafenviertel, bestimmt werd' ich verkloppt. Tja.

Schoenen Gruß,

Oliver

Dieser Post wurde am 24.11.2005 um 17:05 Uhr von Tomcat0815 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: