ciao .
Ho scritto questa breve classe:

codice:
#pragma once
#include <string>
using namespace std;
class CBase
{
public:
	CBase(void);
	~CBase(void);
	string name ;
	string Lastname;
	virtual void call(CBase b);
	virtual void call2(CBase b);
};


#include ".\base.h"
#include <string>
using namespace std;
CBase::CBase(void)
{
}

CBase::~CBase(void)
{
}
class CProva:
	public CBase
{
public:
	CProva(void);
	~CProva(void);
	
	
};

void CBase::call(CBase b)
{
	int i = 0;
	i= 1;
}
void CBase::call2(CBase b)
{
	int i = 0;
	i= 1;
}

int main()
{
	
	
	typedef void (CBase::*DerivedClassFunction)(CBase );

	DerivedClassFunction my_memfunc_ptr;
	my_memfunc_ptr = &CBase::call; 	
	
	std::map<std::string, DerivedClassFunction> m1;
	m1["giugio"]= &CBase::call;
	
	my_memfunc_ptr = &CBase::call; 
	m1["giugio2"]= &CBase::call2;
	
	
	CBase y;
	y.name = "giuseppe";
	y.Lastname = "ferrari";

	CBase p;
	p.name = "pippo";
	p.Lastname ="giugio";
	
	
	(y.*my_memfunc_ptr)(p);
	
	
	
	// Map the functions to the names
	/*m["foo"] = &foo;
	m["bar"] = &bar;*/
	// Display all of the mapped functions
	/*std::map<std::string, std::string (*)()>::const_iterator it = m.begin();
	std::map<std::string, std::string (*)()>::const_iterator end = m.end();*/
	
	std::map<std::string, DerivedClassFunction>::const_iterator it = m1.begin();
	std::map<std::string, DerivedClassFunction>::const_iterator end = m1.end();
	
	while ( it != end ) {

	DerivedClassFunction der = it->second;
	(y.*der)(p);//--> richiamo la funzione
	(y.*der)(y);//--> richiamo la funzione

	++it;

	}

	
}

ecco , vorrei renderla generica , nella mia applicazione tutte le classi derivano da una CIfcBase e tutte le funzioni SetVarMEmbroIfc hanno di return type void e con parametro(CIfcBase), tutte.

quindi ho stessi parametri e stesso type ,E' possibile creare una mappa di quaste funzioni e richiamarle all' occorrenza?
quello che cambia è l'object che contiene la variabile membro , ma anche questo è di tipo CIfcbase.
Grazie.