Aggiunta documentazione

git-svn-id: svn://10.65.10.50/trunk@1296 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
andrea 1995-04-21 17:10:19 +00:00
parent 7f2eafbb08
commit f7c11b5f6c
2 changed files with 95 additions and 35 deletions

View File

@ -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
{

View File

@ -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);