codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#ifndef CARRAY_HPP #define CARRAY_HPP template <typename Data> class Array { public: Array(); Array(int size); virtual ~Array(); const int size() const; Data& operator[](int pos); Array<Data> operator=(const Array<Data>& other); private: int mSize; Data* mData; }; #endif // CARRAY_HPP #include "CArray.hpp" #include <stdlib.h> template <typename Data> Array<Data>::Array(int size):mSize(abs(size)) { if (0<mSize) mData=new Data[mSize]; } template <typename Data> Array<Data>::Array():mSize(0) {} template <typename Data> Array< Data > Array< Data >::operator=(const Array< Data >& other) { if (this!=&other) { mSize=other.size(); mData=new Data[mSize]; for (int i=0;i<mSize;i++) mData[i]=other[i]; } return *this; } template <typename Data> Data& Array< Data >::operator[](int pos) { Data* ans=0; if ((-1<pos) && (mSize>pos)) ans=mData+pos; return ans; } template <typename Data> const int Array<Data>::size() const { return mSize; } template <typename Data> Array<Data>::~Array() { if (mData) delete mData; }
Private
[
?
]
Run code
Submit