Klassenprobleme
-
Na klar, könnte hinhauen.
Ich probiers mal so und poste obs geklappt hat.
Danke dir!! MfG mdsnake
-
Danke Jester, es hat funktioniert!
Nochmal ne kleine andere Frage. Wie deklariert man eine Attribut für ein Objekt und weißt ihm gleich einen Wert zu?? Also etwas der Art:
"private: int groesse = 10; " Im Header geht das anscheinend nicht,was auch Sinn macht. Aber im *.cpp klappts trotz static & const Deklarierung irgendwie auch nicht,hmm.... ??Bin ich nur blond??MfG mdsnake
-
class Foo {
private:
const int bar = 12;
};Für alles andere gibt es doch die Konstruktoren.
-
Genau so hatte ich mir das ja auch gedacht! Wenn ichs genau so mache,bekomme ich aber immer eine Fehlermeldung:
error C2258: Ungueltige Syntax fuer rein virtuelle Methode; '= 0' erforderlich
error C2252: 'seineGroesse' : Nur Funktionen koennen rein virtuell deklariert werdenHäääh....
-
Zeig mal genau den COde mit dem Fehler, und verwende bitte die c/c++ Code Tags
dafür, damit es in Farbe ist
-
SirLant schrieb:
class Foo { private: const int bar = 12; };
nein.
static vergessen?class Foo { private: static const int bar = 12; };
wenn bar nur eine Compiletimekonstante sein soll.
Andernfalls, wenn jede Instanz ihre eigene Konstante haben sollclass Foo { const int bar; public: Foo () : bar(42) {} //so, in elementinitialisierungsliste initialisieren
-
Hoppla hab ich doch tatsächlich das static vergessen
-
Auch mit static kommt die selbe Meldung!
Also hier mal der Code:
sd_digit_long.h#pragma once #include "systemc.h" #include "wordlength.h" class SD_Number; class SD_Number_long { public: sd_digit a[WORDLENGTH]; // Groesse ist bekannt SD_Number_long() ; SD_Number_long(const SD_Number_long &rhs) ; SD_Number_long& operator=(const SD_Number_long &rhs); SD_Number_long& operator=(int A) ; bool operator == (const SD_Number_long& rhs) const ; SD_Number_long& operator << (int positions) ; SD_Number_long& operator+ (SD_Number_long B) ; SD_Number_long& operator- (SD_Number_long B) ; // Plusoperator für Addition mit "kürzerer" SD_Number (Wordlength-1 Stellen) SD_Number_long& operator+(SD_Number B) ; SD_Number_long& operator- (SD_Number B) ; private: static const int seineGroesse = 10; };
-
Vielleicht ist Dein Compiler zu alt und kann das noch nicht. Probier die Zuweisung mal in der Definition in der Implementierung oder suche (im Forum oder bei google) mal nach "enum hack".
MfG Jester
-
Lag doch tatsächlich an MVC 6.0, der Compiler ist halt doch nicht mehr der neuste. Hab im entsprechenden Forum aber ne gute Lösung gefunden. Danke nochmal!
MfG mdsnake