ciao.
Ho provato a semplificare il sistema , ho aperto un altro post che è un po confusionario , quindi pregerei il moderatore se ci sono problemi di chiudere l'altro post , non questo.
posto il codice:
[code]


#include "stdafx.h"
#include "A.h"
#include "B.h"
#include <string>
using namespace std;
main
codice:
int _tmain(int argc, _TCHAR* argv[])
{
	CA *c =new CA();
	c->processA();
	CB* data = c->GetCB();
	CC** cx = data->m_mappa[0];
	
	CC* ce = * cx;
	wstring str = ce->GetName();
	
	ce = * cx;
	str = ce->GetName();
	
	
	return 0;
}
A.h
codice:
#pragma once
#include "B.h"
class CA
{
public:
	CA(void);
	~CA(void);
	void processA();
	CB* GetCB();
private:
	CB *m_b;
};
A.cpp
codice:
#include "StdAfx.h"
#include ".\a.h"

CA::CA(void)
{
}

CA::~CA(void)
{
}

void CA::processA()
{
	CC* c= new CC();
	CC* cx= new CC();
	c->SetName(L"giugio");
	cx->SetName(L"pippo");
	m_b = new CB();
	m_b->processaB(&c);
	m_b->processaB(&cx);
}

CB* CA::GetCB()
{
	return m_b;

}
B.h
codice:
#pragma once
#include "C.h"
#include <map>

using namespace std;

class CB
{
public:
	CB(void);
	~CB(void);
	void processaB(CC ** pPointer);
	map<int, CC**>m_mappa;
};
B.cpp
codice:
#include "StdAfx.h"
#include ".\b.h"

CB::CB(void)
{
}

CB::~CB(void)
{
}

void CB::processaB(CC** pC)
{
	m_mappa[m_mappa.size()] = pC;
	
}
C.h
codice:
#pragma once
#include <string>

using namespace std;
class CC
{
public:
	CC(void);
	~CC(void);
	void SetName(wstring str);
	wstring GetName();
private:
	wstring m_name;
};
C.cpp
codice:
#include "StdAfx.h"
#include ".\c.h"

CC::CC(void)
{
}

CC::~CC(void)
{
}

wstring CC::GetName()
{
	return m_name;
}

void CC::SetName(wstring str)
{
	m_name = str;
}

dove sono gli errori?
perchè nel main CC* ce = * cx; ce ha un puntatore a schifo(0Xccccccc)?e non il valore che gli ho assegnato?

Grazie