Well it's like I said. There are ways, but you generally shouldn't.
Reasons not to do it the way naivnomore suggested:
- exposing the user to internal types just adds to type confusion, ultimately making the class more error prone and harder to use.
- it makes const correctness more difficult
- it takes more code to write
- it makes built in bounds checking more difficult
- it makes an assumption about how the class has to store the array internally. For example in his situation, his class must have 'column's instead of having the actual data directly. This makes it impossible to have a dynamic array that's stored linearly with this approach. (read: stored linearly = less memory, faster access)