Cojonuda la iniciativa  :D . La verdad es que se echaba de menos algo así, me parece un complemento perfecto para Stratos. Enhorabuena.
Metaxas
			Metaxas
|  | 
|  | ¡Bienvenido a Stratos!Acceder | 
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menu
#include <list>
enum { AType = 0, BType = 1 };
class IBase
{
	
public:
  
  virtual unsigned int GetType() = 0;
};
class A : public IBase
{
    
public:
	
	unsigned int GetType()
	{
     return AType;
	}
	void FuncA() {};
};
class B : public IBase
{	
    
public:
	unsigned int GetType()
	{
     return BType;
	}
	void FuncB() {};
};
int main(int argc, char* argv[])
{
	std::list<IBase *> ptrList;
	A a;
	B b;
	ptrList.push_back(&a);
	ptrList.push_back(&b);
	IBase *ptrBase = ptrList.front();
	unsigned int type = ptrBase->GetType();
	switch (type)
	{
  case AType: A *ptrA;
        ptrA = dynamic_cast<A *> (ptrBase);
        ptrA->FuncA();
        break;
  case BType: B *ptrB;
        ptrB = dynamic_cast<B *> (ptrBase);
        ptrB->FuncB();
        break;
  default: break;
	}
	return 0;
}
template<class T> int Function(T *ptr)
{
    return ptr->DoSomething();
}
class I
{
    public:
        virtual int DoSomething() = 0;
};
class A : public I
{
    public:
        virtual int DoSomething()
        {
            return 0;
        }
};
class B : public I
{
    public:
         virtual int DoSomething()
         {
             return 1;
         }
};
int main(int argc, char* argv[])
{
    A a;
    B b;
    int value1 = Function(&a); // value1 vale 0
    int value2 = Function(&b); // value2 vale 1
    return 0;
}Citar- DirectGfx: Es normal q si no limpio el backbuffer, me lo limpie el DX con pantallazos de colores ????