Problem with virtual const

Pierre Chatelier pierre.chatelier@club-internet.fr
Fri Apr 21 07:52:00 GMT 2006


Hello,

Am I misunderstanding something ? In the following code, I do not  
understand why there is a  compile error on line 22.
I have tried with gcc 3.1, 3.4, 4.0 and 4.1, and the result is the  
same, so there is little chance that it is a bug...

       1 class A
       2 {
       3   public:
       4     virtual ~A() {}
       5     virtual int f(int x)        const {return x;}
       6     virtual int f(int x, int y) const {return f(x+y);}
       7     virtual int g(int x)        const = 0;
       8     virtual int g(int x, int y) const {return g(x+y);}
       9 };
      10
      11 class B : public A
      12 {
      13   public:
      14     virtual ~B() {}
      15     virtual int g(int x) const {return x;}
      16 };
      17
      18 int main(int, char* [])
      19 {
      20   B b;
      21   b.f(4,5); //ok
      22   b.g(4,5); //error !
      23   static_cast<A*>(&b)->g(4,5); //ok
      24
      25   return 0;
      26 }



More information about the Gcc-help mailing list