29 void increase() { ++c; }
30 unsigned int decrease() {
return --c; }
44 array(
const unsigned int x,
const unsigned int y) :
54 data(p.data) { count->increase(); }
56 ~
array() {
if (count->decrease() == 0) {
delete count;
delete [] data; } }
58 unsigned int length()
const {
return x * y; }
60 T* operator[](
unsigned int a) {
return a<x ? &data[a * y] : 0; }
62 T
const* operator[](
unsigned int a)
const {
return a<x ? &data[a * y] : 0; }