Aggiunto costruttore i copia
git-svn-id: svn://10.65.10.50/trunk@2802 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
11ec3729bc
commit
b8653b0c6f
@ -322,3 +322,34 @@ int TAssoc_array::get_keys(TString_array& kl, bool add_values)
|
||||
restart();
|
||||
return kl.items();
|
||||
}
|
||||
|
||||
HIDDEN TAssoc_array * _new_assoc_array = NULL;
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc funzione per duplicare il contenuto di un assoc_array
|
||||
//
|
||||
HIDDEN void copia_elemento(const TObject & o)
|
||||
|
||||
{
|
||||
const THash_object & h = (const THash_object & ) o;
|
||||
|
||||
_new_assoc_array->add(h.key(), h.obj(), TRUE);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Copia tutto l'array e ne duplica gli elementi
|
||||
//
|
||||
TAssoc_array & TAssoc_array::copy(
|
||||
const TAssoc_array & a) // @parm Array associativo sorgente
|
||||
|
||||
{
|
||||
CHECK(_new_assoc_array == NULL, "Trying to duplicate an assoc array while another copy is in progress");
|
||||
_new_assoc_array = this;
|
||||
((TAssoc_array &)a).for_each(copia_elemento);
|
||||
_new_assoc_array = NULL;
|
||||
return * this;
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,9 @@ class TAssoc_array : public TContainer
|
||||
protected:
|
||||
|
||||
// @cmember Cerca l'oggetto con chiave k
|
||||
THash_object* _lookup(const char* k, bool& isnew, bool insert = FALSE);
|
||||
THash_object* _lookup(const char* k, bool& isnew, bool insert = FALSE);
|
||||
// @cmember Copia tutto l'array associativo e ne duplica gli elementi
|
||||
TAssoc_array & copy(const TAssoc_array & a);
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
@ -134,10 +136,16 @@ public:
|
||||
|
||||
// @cmember Mette chiavi e opzionalmente valori (come stringa) nel <c TString_array> passato
|
||||
int get_keys(TString_array& kl, bool add_values = FALSE);
|
||||
|
||||
// @cmember Operatore di assegnamento tra array associativi
|
||||
TAssoc_array & operator= (const TAssoc_array & a)
|
||||
{ return copy(a); }
|
||||
|
||||
// @cmember Costruttore
|
||||
TAssoc_array() : _cnt(0), _row(0), _col(0)
|
||||
{}
|
||||
// @cmember Costruttore. Copia tutto l'array associativo e ne duplica gli elementi
|
||||
TAssoc_array(const TAssoc_array & a) : _cnt(0), _row(0), _col(0)
|
||||
{ copy(a); }
|
||||
// @cmember Distruttore
|
||||
virtual ~TAssoc_array()
|
||||
{ destroy(); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user