Klasse mit <vector>
-
Das ist meine erste Klasse in C++
und ich weiss nicht, was diese Errors bedeuten:
error C2143: syntax error : missing ';' before '<'
error C2501: 'Signal::vector' : missing storage-class or type specifiers
error C2238: unexpected token(s) preceding ';'signal.h
#ifndef __SIGNAL_H #define __SIGNAL_H #include <vector> #include <atltime.h> class Signal { private: vector<double> _Data; float _SampleRate; CTime _TimeInitial; int _Length; public: Signal(float sr=200, CTime ti=CTime::GetCurrentTime(),int l=1200) : _SampleRate(sr),_TimeInitial(ti),_Length(l); vector<double> Data(void) {return(_data);} float SampleRate(void) {return(_SampleRate);} CTime TimeInitial(void) {return(_TimeInitial);} int Length(void) {return(_Length);} }; #endifund in signal.cpp
#include "signal.h" #include <vector> Signal::Signal(float sr=200, CTime ti=CTime::GetCurrentTime(),int l=1200) : _SampleRate(sr),_TimeInitial(ti),_Length(l) { vector<double> v; _Data=v; }und mein main.cpp
#include "signal.h" #include <iostream> int main() { Signal s; }Was ist hier falsch?
habt ihr andere Idee für die ZeitStempel? Sollte ich mit time.h arbeiten?
-
Hallo,
es fehlt ein std::
Die Klasse vector liegt, wie alle Klassen der Standardbibliothek, im Namensraum std. Demzufolge musst du vector mit std:: qualifizieren.
-
danke!
now it's working...und jetzt die nächste Frage: wie kann man besser mit der Zeit arbeiten? Ich möchte mir nur den Anfang einer Messung merken und einfache Operationen durchführen wie:
TimeFinal= signal.TimeInitial()+myFunc(signal.Length(), signal.SampleRate())
-
Entweder du verwendest direkt die Methoden (und Datentypen) der <ctime> (=<time.h> in C++-Version): time_t (Sekunden seit 1.1.1970), time(),... oder du suchst dir eine Bibliothek, die um diese Funktionen Wrapper gebaut hat (z.B. MFC's CTime).