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