#include // StaticArray.cpp #include "StaticArray.h" // Remarque : pour acceder aux attributs et methodes de la classe // de base AbstractArray, il faut indiquer this->... pour y acceder ! // C'est a cause des templates ! // Exemple : this->_t // // On peut aussi ajouter AbstractArray:: // Exemple : AbstractArray::_t // ............................................ StaticArray aStaticArray; // .................................. StaticArray aStaticArray(capacity); template StaticArray::StaticArray(void) : AbstractArray(MAX) { AbstractArray::_t = _st; for(int i = 0; i::_capacity; i++) { AbstractArray::_t[i] = T(); } } // ......................................... StaticArray aStaticArray(a); template StaticArray::StaticArray(const StaticArray& a) : AbstractArray(a) { AbstractArray::_t = _st; _copy(a); } // ................................................... aStaticArray = a; template StaticArray& StaticArray::operator=(const StaticArray& a) { if(this != &a) { AbstractArray::operator=(a); _destroy(); _copy(a); } return *this; } // ...................... StaticArray aStaticArray(CArray,capacity); template StaticArray::StaticArray(const T* CArray, int capacity) : AbstractArray(CArray,MAX) { AbstractArray::_t = _st; for(int i = 0; i < capacity; i++) { insert(CArray[i]); } } template StaticArray::~StaticArray(void) { _destroy(); } // ....................................... aStaticArray.insert(element); template void StaticArray::insert(const T& element) { assert(!AbstractArray::full()); AbstractArray::_t[AbstractArray::_size++] = element; } // .................................................. aStaticArray += a; template StaticArray& StaticArray::operator+=(const StaticArray& a) { AbstractArray::operator+=(a); return *this; } // ............................................................. a1 + a2; template StaticArray operator+(const StaticArray& a1, const StaticArray& a2) { StaticArray aStaticArray(a1); return aStaticArray += a2; } // ...................................................... _copy(a); template void StaticArray::_copy(const StaticArray& a) { AbstractArray::_t = _st; for(int i = 0; i ::_t[i] = a._t[i]; } } // ................................................... _destroy(); template void StaticArray::_destroy(void) { AbstractArray::_t = NULL; }