Codice:
class Generica
{
public:
Generica(const char* nome) : _nome(nome)
{}
virtual ~Generica()
{}
virtual void metodo1() = 0;
virtual int metodo2(int p) = 0;
virtual float metodo3() = 0;
const char* nome() { return _nome.c_str(); }
protected:
std::vector< std::vector<int> > _dati;
private:
std::string _nome;
};
class Figlio1 : public Generica
{
public:
Figlio1 : Generica("figlio1")
{}
void metodo1()
{
cout << "metodo 1 dell'oggetto " << nome();
}
int metodo2(int p)
{
cout << "metodo 2 dell'oggetto " << nome();
}
float metodo3()
{
cout << "metodo3 dell'oggetto " << nome();
}
};
class Figlio2 : public Generica
{
public:
Figlio2 : Generica("figlio2")
{}
void metodo1()
{
cout << "metodo 1 dell'oggetto " << nome();
}
int metodo2(int p)
{
cout << "metodo 2 dell'oggetto " << nome();
}
float metodo3()
{
cout << "metodo3 dell'oggetto " << nome();
}
};