Statische string-Konstante (in der Klasse)

Ich würde gerne eine private statische Konstante für eine Klasse (in diesem Fall ein Form-Fabrik).

Ich würde gerne so etwas in der Art.

class A {
   private:
      static const string RECTANGLE = "rectangle";
}

Leider bekomme ich alle möglichen Fehler aus C++ (g++) - compiler, wie zum Beispiel:

ISO-C++ verbietet Initialisierung von
Mitglied 'RECHTECK'

ungültige in-class initialization of static data member of non-integral type "std::string'

Fehler: macht 'RECHTECK' statische

Dieser sagt mir, dass diese Art von Mitglied-design ist nicht konform mit dem standard. Wie hast du ein eigenes literal-Konstante (oder vielleicht öffentlichen) ohne Verwendung einer #define-Direktive (ich möchte vermeiden, die uglyness von Daten globality!)

Jede Hilfe ist willkommen.

  • Danke für all Eure tollen Antworten! Lebe SO!
  • Kann mir bitte jemand sagen, was "integral" - Typ ist? Ich danke Ihnen sehr.
  • Integrale Typen bezeichnet-Typen repräsentieren ganze zahlen. Siehe publib.boulder.ibm.com/infocenter/comphelp/v8v101/...
  • Private static string in Ihre Fabrik ist keine gute Lösung - prüfen Sie, dass Ihr Werk die Kunden wissen, was Formen sind unterstützt, so, anstatt halten Sie es in der privaten statische, setzen Sie Sie in separaten Namensraum als static const std::string RECTANGLE = "Rechteck".
  • wenn Ihre Klasse ist eine template-Klasse, dann finden Sie unter stackoverflow.com/q/3229883/52074
InformationsquelleAutor lb. | 2009-10-14
Schreibe einen Kommentar