Newsgroup: it.comp.lang.c++
Titolo: scambio dati tra un membro e un membro statico

ho una classe
class MyClass {
public:
    MyClass();
    static PROC(long, long, long, long);
};
il membro PROC esegue il loop dell'applicazione, dopo che è stata creata.
come posso fare da dentro la funzione PROC() a leggere le variabili membro
della classe istanziata?
so che un membro static è come una funzione esterna, perchè non gli viene
passato il puntatore all'oggetto, e se ptovo ad accedere ai membri il
compilatore dà errore.
quindi come posso fare ad accedere a queste variabili dalla PROC()?
avrei pensato a delle variabili globali (dichiarate a livello di modulo), ma
come faccio a sincronizzare la scrittura all'interno di queste variabili con
la lettura dall'interno della funzione proc()?
se ci fosse un modo per poter passare un long come parametro alla proc(),
potrei memorizzare questo long in una variabile dichiarata static
all'inyterno della PROC(), ma che cosa gli dovrei passare? è possibile
passare un puntatore alla classe, in modo che poi potrò leggere le variabili
membro dell'istanza della classe?
--
ciao
XAERO [*]
"Se vuoi renderti conto del valore del
denaro, prova a chiedere un prestito"
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCA/CM/CS/CC/E/O d?(-) s+:-- a--->? C++++(+)$@ UL-(--) P>++ L+() E-- W+++$@
N++@ o-- K- w+++(++++)@ O--- M V? PS+++ PE-(--) Y? PGP>++ t? 5? X+ R- tv-
b+(++) DI? D++ G- e !h !r y?
------END GEEK CODE BLOCK------

 della classe istanziata?
Non sono un guru, ma anche a me e' capitata una cosa simile e ho fatto cosi':
class MyClass{
public:
    MyClass();
    static MyClass *lpCurrent; // puntatore statico alla classe
    static PROC(ecc.);
};
Nel costruttore faccio:
MyClass::MyClass(){
    lpCurrent=this;    // assegno al puntatore QUESTA istanza
}
e poi usi lpCurrent->quellochetiserve :)
Ci sono pero' dei "problemi", come quello che, in caso di diverse
istanze contemporaneee, lpCurrent prende il valore dell'ultima istanza :/
Spero ti sia stato d'aiuto
Killer

della classe istanziata?
non ho capito molto bene il senso della richiesta, puoi spiegarti
meglio? cmq potresti usare delle variabili membro anch'esse statiche
le il programma userà una sola istanza della classe.
In questo caso però non riesco a capire l'utilità di usare una classe
invece di un namespace.
Anto 
--
Antonio Cuni, 18 anni, studente
Brainbench Certification: 
Master C++: 4.44, higher than 97% of all previous test takers.
Visual Basic 5: 3.06, higher than 77% of all previous test takers.
http://www.brainbench.com/transcript.jsp?pid=1301688

 invece di un namespace.
perchè l'utilità della classe era di poter istanziare più classi
solo che a windows non piace un puntatore a una funzione membro
quindi serve un puntatore a un membro static (che non capisco che utilità
abbia. tanto vale dichiarare una funzione normalemnte... cmq non è proprio
qui il problema)
ma se poi questo membro non può avere nessun tipo di interazione con la
classe il problema è irrisolvibile :(
cmq non fa niente. stavo solo cercando di fare un framework minuscolo per
fare un'applicazione win32 composta da 1 sola finestra, con 1 sola finestra
figlia e 1 classe che gestiva degli widget virtuali
ma vedo che è troppo frustrante... ;)
passo a MFC
grazie lo stesso


Passare esplicitamente un puntatore all'istanza della classe?
Oppure se la classe puo` avere solo una unica istanza, puoi sempre
pensare a mebri tutti statici o ad un pattern Singleton.
Paolo
--
Paolo Marotta
Duck Communication Entertainment s.r.l.
Largo Arenula, 11 - Roma
http://www.duckce.com
p.ma...@duckce.com
-- 
Posted from 
HA-server-a.cs.interbusiness.it
 [151.99.250.31] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG