Vorrei creare un oggetto CServer, e riferirmi sempre ad esso e ai suoi attributi. Tutto bene finché non ho separato il codice in classi, così accade che ogni volta che creo una istanza della classe CServer creo un oggetto nuovo, e pertanto ogni volta che voglio accedere ad un suo attributo non faccio altro che accedere ad un attributo di un oggetto diverso.
Ecco il mio tentativo:

codice:
// Server.h
#pragma once 

class CServer
{
public: 
	CServer(void);
	~CServer(void);

	int mServer_iValue;
	void SetValue(int&);
};

// Server.cpp 
#include "StdAfx.h"
#include "Server.h"

CServer::CServer(void)
{
	mServer_iValue = 0;
}

CServer::~CServer(void)
{
}

void CServer::SetValue(int& a)
{
	mServer_iValue = a;
}
codice:
//Client.h 
#pragma once
#include "Server.h"

class CClient
{
public: 
	CClient(void);
	~CClient(void);

	CServer mClient_server;
	int GetValue(void);
};

//Client.cpp 
#include "StdAfx.h"
#include "Client.h"

CClient::CClient(void)
{
}

CClient::~CClient(void)
{
}

int CClient::GetValue(void)
{
	return mClient_server.mServer_iValue;
}
codice:
//Main.cpp 
#include "stdafx.h"
#include "Server.h"
#include "Client.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int starting = 12;
	CServer server;
	CClient client;
	server.SetValue(starting);
	int returned = client.GetValue();

	std::cout << "Returned value is: " << returned << std::endl;
	return 0;
}
Il valore ritornato è "0" e non "12". Il motivo mi dovrebbe essere chiaro, cioé i valori fanno riferimento a due oggetti diversi, anche se sono istanze della stessa classe. Purtroppo per la ma limitarta esperienza non so quale tecnica debbo uilizzare per riuscire ad accedere al valore mServer_iValue riferito sempre allo stesso oggetto. Utilizzado i puntatori ho ottenuto lo stesso risultato (evidentemente commettendo la stessa ingenuità!).

Attendo un qualche suggerimento.