Ciao,
scusa ma il metodo "DoSomething" lo hai messo virtuale xche` lo vuoi reimplementare nelle classi derivate?
Perche` da quello che hai scritto non lo vuoi fare, quindi non ne vedo il motivo.
Se tu non lo vuoi reimplementare ma solamente che si comporti in modo diverso su delle classi derivate in base ad un certo dato io non farei una membro statico ma bensi` dichiareri una metodo virtuale che reimplemento nelle classi deriviate.
file base.h
Codice:
#ifndef BASE_H_
#define BASE_H_
class Base
{
public:
Base();
virtual ~Base();
void DoSomenthing();
protected:
virtual bool IsDoIt() { return true; }
};
#endif /*BASE_H_*/
file base.cpp
Codice:
#include "Base.h"
#include <stdio.h>
bool Base::m_doIt = false;
Base::Base() :
{
}
Base::~Base()
{
}
void Base::DoSomenthing()
{
if(IsDoIt())
{
printf("OK");
}
}
file .h della classe derivata
N.B.: ricordati di derivare la classe dalla clase "Base", nel codice da te scritto non c'era
Codice:
#ifndef EXECUTOR_H_
#define EXECUTOR_H_
class Executor : public Base
{
public:
Executor();
virtual ~Executor();
protected:
virtual bool IsDoIt() { return false; }
};
#endif /*EXECUTOR_H_*/