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);}
    
    };
    
    #endif
    

    und 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).


Anmelden zum Antworten