IMO it's good practice to define the number of elements in a fixed size array (even those created via new) as constants (const int) near the top of the program and then use these constants when the array is defined and iterated (use < rather than <=). That way you stand less chance of accessing (and modifying!) non-existent array elements. It also makes it easier to see what are the sizes of arrays without having to trawl through the program trying to find them!
IMO it is also not a good idea to allocate memory in one place and then have to remember to free it up somewhere else. Where possible use RAII and put allocation in the constructor and free in the destructor