View Single Post
Old 17-11-2007, 16:35   #4
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Codice:
#include <iostream>
using namespace std;


class I
{
     public:
          virtual void fI()=0;
};


class I2:virtual public I
{
     public:
          virtual void fI2()=0;
};

class IImpl:virtual public I
{
     public:
          void fI(){ cerr << "fI()" << endl;}
};


template<typename T>
class I2Impl:public I2,public IImpl
{
     public:
          void fI2(){ cerr << T(0) << endl; }
};



int main()
{
    I2Impl<bool> x;
    x.fI();
    x.fI2();
}
Questo funziona, occhio che i secondi "virtual" di cui parlavo sono quelle nella dichiarazione della classe, non del metodo.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso