Aggiunta documentazione
git-svn-id: svn://10.65.10.50/trunk@1296 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7f2eafbb08
commit
f7c11b5f6c
@ -3,7 +3,18 @@
|
||||
#include <array.h>
|
||||
#include <strings.h>
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
//
|
||||
// @mfunc void | TArray | resize | Modifica la dimensione dell'array.
|
||||
//
|
||||
// @parm int | newdim | Indica la nuova dimensione che deve assumere l'array.
|
||||
//
|
||||
// @comm Alloca la memoria necessaria per contentere i dati della nuova
|
||||
// dimensione inizializzando a NULL tutti i nuovi elementi aggiunti
|
||||
// all'array lasciando inalterati, sia in posizione che in
|
||||
// contenuto gli elementi gia' presenti.
|
||||
// Nel caso si cerca di diminuire la dimensione viene dato un messaggio
|
||||
// di errore.
|
||||
void TArray::resize(int arraysize)
|
||||
|
||||
{
|
||||
@ -23,7 +34,23 @@ void TArray::resize(int arraysize)
|
||||
_data = newdata;
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
// @mfunc bool | TArray | destroy | Rimuove uno o tutti gli elementi (default)
|
||||
//
|
||||
// @parm int |index | Numero dell'elemento da eliminare (default -1)
|
||||
// @parm bool | pack | Se true richiama la funzione <mf TArray::pack> per compattare
|
||||
// gli elementi dell'array (default FALSE)
|
||||
//
|
||||
// @comm Permette la rimozione di uno (index > 0 ) o di tutti (default) gli
|
||||
// elementi dell'array assegnandone il valore NULL.
|
||||
// Nel caso il parametro pack sia TRUE permette di rendere contigui tutti
|
||||
// gli elementi diversi da NULL tramite la chiamata alla funzione <mf TArray::pack>.
|
||||
//
|
||||
// @rdesc Ritorna uno dei seguenti parametri:
|
||||
//
|
||||
// @flag TRUE | Se l'operazione e' riuscita con successo
|
||||
// @flag FALSE | Se il numero di elementi e' rimasto invariato
|
||||
bool TArray::destroy(int index, bool pack)
|
||||
{
|
||||
const int old = _items;
|
||||
@ -48,7 +75,6 @@ bool TArray::destroy(int index, bool pack)
|
||||
|
||||
|
||||
TArray::TArray(int arraysize) : _size(0), _items(0), _data(NULL)
|
||||
|
||||
{
|
||||
if (arraysize) resize(arraysize);
|
||||
}
|
||||
@ -83,19 +109,17 @@ TArray::~TArray()
|
||||
|
||||
|
||||
const char* TArray::class_name() const
|
||||
|
||||
{
|
||||
return "Array";
|
||||
}
|
||||
|
||||
|
||||
word TArray::class_id() const
|
||||
|
||||
{
|
||||
return CLASS_ARRAY;
|
||||
}
|
||||
|
||||
|
||||
//ANDREA
|
||||
void TArray::print_on(ostream& out) const
|
||||
|
||||
{
|
||||
|
@ -5,66 +5,102 @@
|
||||
#include <object.h>
|
||||
#endif
|
||||
|
||||
// @M
|
||||
#ifndef NULL
|
||||
#define NULL 0L
|
||||
#endif
|
||||
// @END
|
||||
|
||||
class TArray;
|
||||
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
// @type COMPARE_FUNCTION | Prototipo funzione di confronto tra elementi della
|
||||
// clsse <c TObject> da passare al metodo sort dei <c TArray>
|
||||
|
||||
typedef (*COMPARE_FUNCTION)(const TObject**, const TObject**);
|
||||
|
||||
// @class TArray | Classe per la definizione degli array
|
||||
//
|
||||
// @base public | TObject
|
||||
|
||||
class TArray : public TObject
|
||||
{
|
||||
TObject** _data; // Array of pointers to objects
|
||||
int _size; // Size of the array
|
||||
int _items; // Number of items in the array
|
||||
|
||||
// @access Private Member
|
||||
|
||||
TObject** _data; // @cmember TObject** | _data | | Array di puntatori ad oggetti
|
||||
int _size; // @cmember int | _size | | Dimensione dell'array
|
||||
int _items; // @cmember int |_items | | Numero di elementi presenti nell'array
|
||||
|
||||
// @access Protected Member
|
||||
|
||||
protected:
|
||||
// @FPROT
|
||||
void resize(int newdim); // Estende l'array
|
||||
|
||||
// @cmember void | resize | (int newdim) | Modifica la dimensione dell'array.
|
||||
void resize(int newdim);
|
||||
|
||||
// @access Public member
|
||||
|
||||
public:
|
||||
// @FPUB
|
||||
TArray(int arraysize); // Crea un array (chiama resize)
|
||||
TArray(); // Crea un array (non chiama resize)
|
||||
TArray(const TArray&); // copia tutto e duplica gli elementi
|
||||
// @cmember void | TArray | (int arraysize) | Costruttore. Crea un array (chiama <mf TArray::resize>)
|
||||
TArray(int arraysize);
|
||||
// @cmember void | TArray | ( ) | Costruttore. Crea un array (non chiama <mf TArray::resize>)
|
||||
TArray();
|
||||
// @cmember void | TArray | (const TArray&) | Costruttore. Copia tutto l'array e ne duplica gli elementi
|
||||
TArray(const TArray&);
|
||||
|
||||
// (casino se non hanno dup() definita)
|
||||
// @cmember virtual | ~TArray | () | Distruttore
|
||||
virtual ~TArray() ;
|
||||
virtual const char* class_name() const ; // Ritorna il nome della classe
|
||||
virtual word class_id() const ; // Ritorna il class-id
|
||||
virtual void print_on(ostream& out) const ; // Stampa un array
|
||||
virtual bool ok() const ; // Ok se l'array non e' vuoto
|
||||
// @cmember virtual const char * | class_name | () const | Ritorna il nome della classe
|
||||
virtual const char* class_name() const ;
|
||||
// @cmember virtual word | class_id | () const | Ritorna l'id della class
|
||||
virtual word class_id() const ;
|
||||
// @cmember virtual void | print_on | (ostream& out) const | Stampa un array
|
||||
virtual void print_on(ostream& out) const ;
|
||||
// @cmember virtual bool | ok | () const | TRUE se l'array non e' vuoto
|
||||
virtual bool ok() const ;
|
||||
|
||||
int size() const { return _size; } // Ritorna grandezza dell'array
|
||||
int items() const { return _items; } // Ritorna numero di oggetti nell'array
|
||||
int last() const; // Ritorna l'indice dell'ultimo oggetto
|
||||
// @cmember int | size | () const | Ritorna la grandezza dell'array
|
||||
int size() const { return _size; }
|
||||
// @cmember int | items | () const | Ritorna numero di oggetti nell'array
|
||||
int items() const { return _items; }
|
||||
// @cmember int | last | () const | Ritorna l'indice dell'ultimo oggetto
|
||||
int last() const;
|
||||
|
||||
TObject& operator[] (int index) const ; // [] ritorna l'oggetto puntato da index
|
||||
TObject* objptr(int index) const ; // Ritorna l'oggetto di posto [index]
|
||||
TArray& operator= (const TArray& a);
|
||||
// @cmember TObject& | operator[] | (int index) const | Ritorna l'oggetto puntato da index
|
||||
TObject& operator[] (int index) const ;
|
||||
// @cmember TObject* | objptr | () const | Ritorna l'oggetto di posto index
|
||||
TObject* objptr(int index) const ;
|
||||
// @cmember Tarray& | operator= | (const TArray& a) | Confronta se i due array sono uguali
|
||||
TArray& operator= (const TArray& a);
|
||||
|
||||
virtual bool destroy(int index = -1, bool pack = FALSE); // Rimuove uno o tutti gli elementi (default)
|
||||
virtual int add(TObject* obj, int index = -1) ; // Aggiunge un oggetto ad un array.
|
||||
// @cmember virtual bool | destroy | (int index, bool pack) | Rimuove uno o tutti gli elementi (default)
|
||||
virtual bool destroy(int index = -1, bool pack = FALSE);
|
||||
// @cmember virtual int | add | (TObject* obj, int index) | Aggiunge un oggetto ad un array.
|
||||
virtual int add(TObject* obj, int index = -1) ;
|
||||
// @cmember virtual int | insert | (TObject* obj, int index) | Inserisce un elemento dell'array nella poszione index
|
||||
virtual int insert(TObject* obj, int index = 0);
|
||||
|
||||
int add(const TObject& object, int index = -1) ; // Aggiunge un oggetto all'array. L'oggetto viene duplicato
|
||||
// (casino se non ha dup() definita)
|
||||
// @cmember int | add | (const TObject& object, int index) | Aggiunge un oggetto all'array. L'oggetto viene duplicato
|
||||
int add(const TObject& object, int index = -1) ;
|
||||
// @cmember int | insert | (const TObject& object, int index) | Inserisce un oggetto alla posizione index
|
||||
int insert(const TObject& object, int index = 0);
|
||||
// @cmember TObject* | remove | (int index, bool pack) | Elimina l'elemento nella poszione index dell'array
|
||||
TObject* remove(int index, bool pack = FALSE);
|
||||
// @cmember void | swap | (int i1, int i2) | Scambia di posto gli elemnti i1 e i2 dell'array
|
||||
void swap(int i1, int i2);
|
||||
void pack(); // Rende contigui tutti gli elementi non nulli
|
||||
void sort(COMPARE_FUNCTION = NULL); // Ordina i TObject (TSortable per default)
|
||||
// @cmember void | pack | () | Rende contigui tutti gli elementi non nulli
|
||||
void pack();
|
||||
// @cmember void | sort | (COMPARE_FUNCTION) | Ordina i TObject (TSortable per default) secondo il criterio definito in <t COMPARE_FUNCTION>
|
||||
void sort(COMPARE_FUNCTION = NULL);
|
||||
};
|
||||
|
||||
// @FIN
|
||||
//ANDREA
|
||||
inline TObject* TArray::objptr(int index) const
|
||||
{
|
||||
return (index < _size && index >= 0) ? _data[index] : NULL;
|
||||
}
|
||||
|
||||
// @FIN
|
||||
inline TObject& TArray::operator[] (int index) const
|
||||
{
|
||||
TObject* o = objptr(index);
|
||||
|
Loading…
x
Reference in New Issue
Block a user