Aggiunto metodo copy costruttore dio copia metodo dup e operatore di

assegnamento ai record array


git-svn-id: svn://10.65.10.50/trunk@5049 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1997-08-06 12:19:18 +00:00
parent 96e33d9ae0
commit 5bc44b580e
2 changed files with 26 additions and 4 deletions

@ -18,9 +18,10 @@ TRecord_array::TRecord_array(int logicnum, const char* numfield, int first)
set_key(new TRectype(logicnum));
}
TRecord_array::TRecord_array(const TRecord_array& a)
: _data(a._data), _file(a._file), _offset(a._offset), _num(a._num)
{}
TRecord_array::TRecord_array(const TRecord_array& a)
{
copy(a);
}
TRecord_array::~TRecord_array()
{
@ -262,6 +263,21 @@ int TRecord_array::read(TRectype* filter)
return err;
}
// @doc EXTERNAL
// @mfunc Copia un record array
//
// @rdesc Copia il record array passato in quello corrente
TRecord_array& TRecord_array::copy(
const TRecord_array& a) // @parm Record_array da copiare
{
_file = a._file;
_data = a._data;
_offset = a._offset;
_num = a._num;
return *this;
}
int TRecord_array::read(const TRectype& filter)
{
TRectype* f = (TRectype*)filter.dup();

@ -44,6 +44,8 @@ protected:
int remove_from(int i) const;
// @cmember Confronta i campi della chiave 1 scartando l'ultimo
bool good(const TRectype& rec) const;
// @cmember Duplica un record array
virtual TObject* dup() const { return new TRecord_array(*this);}
// @access Public Member
public:
@ -99,7 +101,11 @@ public:
{ return destroy_row(rec2row(r), pack); }
// @cmember Cancella tutte le righe
void destroy_rows();
// @cmember Copia un record array
TRecord_array& copy(const TRecord_array& a);
// @cmember Operatore di assegnamento di un record array
TRecord_array& operator= (const TRecord_array& a) { return copy(a); }
// @cmember Ritorna il numero logico del file principale
int logic_num() const
{ return _file; }