Splitting a bounding box into n amount of bounding boxes

Firstly, I've never worked in the GIS area before nor do I have much knowledge of the mathematics behind some of the stuff I am trying to implement. Perhaps i'm getting in over my head.

My Situation

I am creating a geospatial map viewer in Qt. So far I have a MapTile class which stores its center location (lat and long) and the width of the box in kilometers, which may or may not be a good idea. From this information I can construct a bounding box from the center point and the width by using the algorithm found here.

The MapTiles are all square, no irregular shapes or rectangles. Is this a bad implementation?

My Problem

Now I am stuck with implementing my MapTileMatrix class which stores a multidimensional array of MapTiles[rows][cols]. I figured I could tell the MapTileMatrix what its bounding box is, and then have it generate the MapTiles position and width from this data. I haven't been able to find any algorithm online or mention of how to split a bounding box down into n number of sub-boundingboxes.

Is there a method of dividing a bounding box into say 4 equal parts? What about 9, 16 or 25? If this is not possible perhaps I should reconsider my design.

On a side note:

Are there any guides / tutorials to implementing a map viewer application? I have read over the Web Map Tile Service and am using this as a guide. This has been my introduction to GIS programming and I have only been working on it for a few days so have little to no knowledge of the domain.