From 0d54eca2683e10b07b5f73ffe42abf63c43b6a59 Mon Sep 17 00:00:00 2001 From: villa Date: Wed, 14 Sep 1994 10:43:51 +0000 Subject: [PATCH] Aggiunto operator= ai TArray (che sfracella l'array e lo trasforma in una copia esatta dell'argomento; gli items devono avere dup()) git-svn-id: svn://10.65.10.50/trunk@233 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/array.cpp | 14 ++++++++++---- include/array.h | 2 ++ include/printapp.cpp | 6 +++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/include/array.cpp b/include/array.cpp index 7ee4c748b..44dfcb997 100755 --- a/include/array.cpp +++ b/include/array.cpp @@ -57,13 +57,19 @@ TArray::TArray() : _size(0), _items(0), _data(NULL) { } -TArray::TArray(const TArray& a) : _size(0), _data(NULL) +TArray::TArray(const TArray& a) : _size(0), _items(0), _data(NULL) { - if (a.size()) resize(a.size()); + (*this) = a; +} + +TArray& TArray::operator= (const TArray& a) +{ + if (_items > 0) destroy(); + if (_size < a.size()) resize(a.size()); for (_items = 0; _items < a.items(); _items++) _data[_items] = a[_items].dup(); -} - + return *this; +} TArray::~TArray() diff --git a/include/array.h b/include/array.h index 9c1fa09cb..7aaec0741 100755 --- a/include/array.h +++ b/include/array.h @@ -30,6 +30,7 @@ public: TArray(int arraysize); // Crea un array (chiama resize) TArray(); // Crea un array (non chiama resize) TArray(const TArray&); // copia tutto e duplica gli elementi + // (casino se non hanno dup() definita) virtual ~TArray() ; virtual const char* class_name() const ; // Ritorna il nome della classe @@ -43,6 +44,7 @@ public: 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); 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. diff --git a/include/printapp.cpp b/include/printapp.cpp index 727ea6679..bf9bfb85d 100755 --- a/include/printapp.cpp +++ b/include/printapp.cpp @@ -1,4 +1,4 @@ -// $Id: printapp.cpp,v 1.6 1994-09-14 07:33:25 villa Exp $ +// $Id: printapp.cpp,v 1.7 1994-09-14 10:43:51 villa Exp $ #include #include @@ -787,7 +787,7 @@ void TPrint_application::print() { if (preprocess_page (0, cnt2)) { - set_page (0, cnt2); + (0, cnt2); ok = print_one (0); } } @@ -850,7 +850,7 @@ bool TPrint_application::print_tree (link_item * head) || !_print_defined) { reset_print (); - set_page (head->_logicnum, head->_cnt); + set_page(head->_logicnum, head->_cnt); _cur_file = head->_logicnum; } int cnt2 = 0;