Wie die Größe eines private Vektors einer Klasse mit einer Konstanten initialisieren?

trench140

Mitglied
Hallo allerseits,

ich bin gerade dabei Quellcode von Java auf C++ zu portieren. Leider kenne ich mich bisher nur mit C aus und betrete mit C++ daher Neuland.

in einer Java-Klasse habe ich nun den Fall, dass dort unter anderem Folgendes auftritt:

Code:
public class Timestamp {
    private static final int DURATION = 1;
    private Vector timestamp = new Vector(DURATION);
    ...
}

Nun, das habe ich nun erstmal stur versucht auf C++ zu übertragen:

Code:
TIMESTAMP.H

#ifndef TIMESTAMP_H_
#define TIMESTAMP_H_
#include <vector>

class Timestamp {
private:
    static const int DURATION = 1;
    std::vector<int> timestamp(DURATION);
    ...
}
#endif

Das haut mir nun die Meldung "DURATION is not a type" um die Ohren. Ich habe nun schon länger Google und Co. bemüht, aber irgendwie bin ich zu blöde um etwas zu meinem Problem zu finden, bzw. wie ich es eben hinkriege, das möglichst 1:1 zu portieren :( Ich weiß soviel, dass ich hier offensichtlich ein Problem mit Deklaration vs. Initialisierung habe.

Kann mir jemand von euch da vielleicht weiterhelfen? Konkret geht es mir einfach nur darum, wie ich die Größe eines als private deklarierten Vektors (von mir aus auch ein Array o.ä.) mit Hilfe einer ebenfalls als private deklarierten Konstanten initialisieren kann. Sofern das so nicht geht bin ich natürlich auch für Alternativen offen.

Gruß,
Trench
 
Hi.

Nicht-statische Member einer Klasse werden in C++ im Konstruktor initialisiert, dabei möglichst in der Initialisierungsliste:
C++:
// timestamp.cpp

Timestamp::Timestamp()
: timestamp(DURATION)
{
}
Gruß
 
Zurück