const in Basisklasse



  • Hallo allerseits!
    Habe folgendes Problem:
    Deklariere in meiner Basisklasse unter public: folgendes:

    const double pi = 3.14;
    und erhalte dafür folgende Fehlermeldungen:

    error C2258: Ungueltige Syntax fuer rein virtuelle Methode; '= 0' erforderlich
    error C2252: 'pi' : Nur Funktionen koennen rein virtuell deklariert werden
    error C2065: 'pi' : nichtdeklarierter Bezeichner

    Was soll das? - und wo iss der Fehler?
    Danke im Voraus!
    Uwe



  • Zeig ma den Code ringsherum



  • Habe den ganzen Code rausgeschmissen.
    Es ist nur noch diese variable unter public vorhanden.
    Das ganze klappt aber auch nicht, wenn sie private deklariert wurde.
    Nur wenn ich sie über die Klassendeklaration setze.
    Ich würde sie allerdings gern in der Klasse haben.



  • Zeig mal den Code. Halt ein minimales Beispiel , ansonsten komplettes gültiges C++ Programm, nur mit dem Fehler.



  • Du kannst die Initialisierungsliste verwenden um constante Member zu Initialisieren.

    class A
    {
    A();
    const float pi;
    }
    
    A::A() : pi(3.14)
    {
    
    }
    


  • oh ich Dummkopf das ist ja gar nicht static! Das musst du mit der Initalisierungsliste machen! Du willst wahrscheinlich auch ein static const ... haben. Zumindestens würde es in deinem Fall mehr Sinn machen 😉

    [ Dieser Beitrag wurde am 24.04.2003 um 16:46 Uhr von Lars editiert. ]



  • Ich vermut du willst das

    class test
    {
      public:
        static const double pi;
    };
    const double test::pi = 3.14;
    

Anmelden zum Antworten