View Single Post
Old 27-11-2006, 07:40   #7
giangian2
Member
 
L'Avatar di giangian2
 
Iscritto dal: Dec 2005
Cittā: Provincia di Vicenza
Messaggi: 174
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_*/

Ultima modifica di giangian2 : 27-11-2006 alle 09:19.
giangian2 č offline   Rispondi citando il messaggio o parte di esso