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 <array.h>
|
||||||
#include <strings.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)
|
void TArray::resize(int arraysize)
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -23,7 +34,23 @@ void TArray::resize(int arraysize)
|
|||||||
_data = newdata;
|
_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)
|
bool TArray::destroy(int index, bool pack)
|
||||||
{
|
{
|
||||||
const int old = _items;
|
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)
|
TArray::TArray(int arraysize) : _size(0), _items(0), _data(NULL)
|
||||||
|
|
||||||
{
|
{
|
||||||
if (arraysize) resize(arraysize);
|
if (arraysize) resize(arraysize);
|
||||||
}
|
}
|
||||||
@ -83,19 +109,17 @@ TArray::~TArray()
|
|||||||
|
|
||||||
|
|
||||||
const char* TArray::class_name() const
|
const char* TArray::class_name() const
|
||||||
|
|
||||||
{
|
{
|
||||||
return "Array";
|
return "Array";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
word TArray::class_id() const
|
word TArray::class_id() const
|
||||||
|
|
||||||
{
|
{
|
||||||
return CLASS_ARRAY;
|
return CLASS_ARRAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ANDREA
|
||||||
void TArray::print_on(ostream& out) const
|
void TArray::print_on(ostream& out) const
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -5,66 +5,102 @@
|
|||||||
#include <object.h>
|
#include <object.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// @M
|
|
||||||
#ifndef NULL
|
#ifndef NULL
|
||||||
#define NULL 0L
|
#define NULL 0L
|
||||||
#endif
|
#endif
|
||||||
// @END
|
|
||||||
|
|
||||||
class TArray;
|
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**);
|
typedef (*COMPARE_FUNCTION)(const TObject**, const TObject**);
|
||||||
|
|
||||||
|
// @class TArray | Classe per la definizione degli array
|
||||||
|
//
|
||||||
|
// @base public | TObject
|
||||||
|
|
||||||
class TArray : public TObject
|
class TArray : public TObject
|
||||||
{
|
{
|
||||||
TObject** _data; // Array of pointers to objects
|
|
||||||
int _size; // Size of the array
|
// @access Private Member
|
||||||
int _items; // Number of items in the array
|
|
||||||
|
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:
|
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:
|
public:
|
||||||
// @FPUB
|
// @cmember void | TArray | (int arraysize) | Costruttore. Crea un array (chiama <mf TArray::resize>)
|
||||||
TArray(int arraysize); // Crea un array (chiama resize)
|
TArray(int arraysize);
|
||||||
TArray(); // Crea un array (non chiama resize)
|
// @cmember void | TArray | ( ) | Costruttore. Crea un array (non chiama <mf TArray::resize>)
|
||||||
TArray(const TArray&); // copia tutto e duplica gli elementi
|
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 ~TArray() ;
|
||||||
virtual const char* class_name() const ; // Ritorna il nome della classe
|
// @cmember virtual const char * | class_name | () const | Ritorna il nome della classe
|
||||||
virtual word class_id() const ; // Ritorna il class-id
|
virtual const char* class_name() const ;
|
||||||
virtual void print_on(ostream& out) const ; // Stampa un array
|
// @cmember virtual word | class_id | () const | Ritorna l'id della class
|
||||||
virtual bool ok() const ; // Ok se l'array non e' vuoto
|
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
|
// @cmember int | size | () const | Ritorna la grandezza dell'array
|
||||||
int items() const { return _items; } // Ritorna numero di oggetti nell'array
|
int size() const { return _size; }
|
||||||
int last() const; // Ritorna l'indice dell'ultimo oggetto
|
// @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
|
// @cmember TObject& | operator[] | (int index) const | Ritorna l'oggetto puntato da index
|
||||||
TObject* objptr(int index) const ; // Ritorna l'oggetto di posto [index]
|
TObject& operator[] (int index) const ;
|
||||||
TArray& operator= (const TArray& a);
|
// @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)
|
// @cmember virtual bool | destroy | (int index, bool pack) | Rimuove uno o tutti gli elementi (default)
|
||||||
virtual int add(TObject* obj, int index = -1) ; // Aggiunge un oggetto ad un array.
|
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);
|
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);
|
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);
|
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 swap(int i1, int i2);
|
||||||
void pack(); // Rende contigui tutti gli elementi non nulli
|
// @cmember void | pack | () | Rende contigui tutti gli elementi non nulli
|
||||||
void sort(COMPARE_FUNCTION = NULL); // Ordina i TObject (TSortable per default)
|
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
|
inline TObject* TArray::objptr(int index) const
|
||||||
{
|
{
|
||||||
return (index < _size && index >= 0) ? _data[index] : NULL;
|
return (index < _size && index >= 0) ? _data[index] : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @FIN
|
|
||||||
inline TObject& TArray::operator[] (int index) const
|
inline TObject& TArray::operator[] (int index) const
|
||||||
{
|
{
|
||||||
TObject* o = objptr(index);
|
TObject* o = objptr(index);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user