Ok.. usage. This class is not just designed for your typical 9x9 grid. Sudoku's come in many different variations. Examples(hopefully these come out readable):

2 x 2

Code:
 - 2 | 3 -
 1 - | - 4
-----------
 3 - | - 2
 - 1 | 4 -
3 x 3

Code:
 - - - | - 2 - | 9 - -
 3 5 6 | - - - | 4 - -
 - 2 - | - - - | - 6 -
-----------------------
 1 - - | 7 - - | - - -
 - - 2 | 9 3 1 | 8 - -
 - - - | - - 5 | - - 6
-----------------------
 - 4 - | - - - | - 2 -
 - - 7 | - - - | 3 1 5
 - - 8 | - 5 - | - - -
4x4

Code:
 - -  -  -  | -  -  -  -  | -  -  -  -  | -  -  -  -
 - -  2  14 | 12 13 -  -  | -  -  9  10 | 5  4  -  -
 - 15 1  -  | -  5  9  -  | -  12 8  -  | -  10 14 -
 - 7  -  4  | 10 -  8  -  | -  13 -  3  | 6  -  16 -
-----------------------------------------------------
 - 13 -  10 | 2  -  6  -  | -  9  -  11 | 14 -  15 -
 - 5  11 -  | -  8  4  -  | -  15 13 -  | -  1  3  -
 - -  16 8  | 5  12 -  -  | -  -  1  2  | 13 11 -  -
 - -  -  -  | -  -  -  15 | 14 -  -  -  | -  -  -  -
-----------------------------------------------------
 - -  -  -  | -  -  -  6  | 11 -  -  -  | -  -  -  -
 - -  10 9  | 14 1  -  -  | -  -  12 4  | 15 6  -  -
 - 3  6  -  | -  11 16 -  | -  2  5  -  | -  9  8  -
 - 4  -  13 | 15 -  3  -  | -  8  -  16 | 10 -  11 -
-----------------------------------------------------
 - 14 -  15 | 1  -  5  -  | -  3  -  8  | 12 -  6  -
 - 2  9  -  | -  3  15 -  | -  10 16 -  | -  7  13 -
 - -  3  12 | 13 14 -  -  | -  -  11 7  | 2  5  -  -
 - -  -  -  | -  -  -  -  | -  -  -  -  | -  -  -  -
6 x 6

Code:
 - - 1 | 2 - -
 - 2 - | - 3 -
---------------
 2 - - | - - 4
 3 - - | - - 5
---------------
 - 6 - | - 5 -
 - - 3 | 6 - -
8 x 8

Code:
 1 - 2 4 | - - - -
 - 3 7 - | - - - -
-------------------
 - - 5 - | 4 - 7 -
 - 4 - - | 5 - - -
-------------------
 - - - 6 | - - 3 -
 - 8 - 5 | - 7 - -
-------------------
 - - - - | - 5 2 -
 - - - - | 8 4 - 6
Where dashes in the grid are unknown values. and - lines and | are seperators that I use to make the grid readable.

In general.. the input file for the class expects a sudoku in this format. Empty cells get '-''s, cellblocks are seperated horizontally by | and vertically by one line of dashes. As long as it sticks to that format.. it should read in whether it is any of the above grid sizes.

Right now since I use a static array.. the allocation is still hardcoded to a specific length denoted by GRID_SIZE. I've been in the process of debugging the class.. and debugging arrays is a lot easier than debugging pointer to arrays visually... but i've included ptrCell which is a pointerized version of the array along with comments at each point it would be set. Once you transition it over its just ptrCell rather than Cell with no other changes.

Until then.. to play around with the class simply create a variable of that type. The default contstructor is set for a 9x9 grid.

To make a custom grid pass the contructor 4 values pertaining to the grid that you want. These are:

1) CellBlock_Width. This is the Width of a CellBlock. For 3x3 Grid its 3. For the 8x8 Grid above its 4.
1) CellBlock_Height. This is the Height of a CellBlock. For 3x3 Grid its 3. For the 8x8 Grid above its 2.
1) Num_CellBlock_Width. This is how many Cellblocks there are wide. For a 3x3 its 3. For the 8x8 Grid Above its 2.
1) Num_CellBlock_Height. This is how many Cellblocks there are high. For a 3x3 its 3. For the 8x8 Grid Above its 4.

So a 3x3 grid is
SudokuGrid *sGrid = new SudokuGrid(3,3,3,3);

For the 8x8 grid above its
SudokuGrid *sGrid = new SudokuGrid(4,2,2,4);

For the 6x6 grid above its
SudokuGrid *sGrid = new SudokuGrid(3,2,2,3);

If you aren't using the pointer notation for finality yet force the GRID_SIZE define to the number of cells in the grid. Now your main code if solving the sudoku would be to read in the file.. which you need to make sure is formatted to the constraints of the grid you created... hit Solve, and then write the file back out to disk. Lastly free the grid. Compile and run.

sGrid -> Read_File("input.sku");
sGrid -> Solve();
sGrid -> Write_File("output.sku");
delete sGrid.

That's pretty much all there is to it. I've tested this on 2x2's, 3x3's, 8x8's(both directions), 12x12's and seems to be pretty smooth now.