As others mentioned there's no way to create two functions with the same name, you can use something like:
Cell makeCell(Cell parent, int dim, int iterations);
for both cases and pass some "special value" to distinguish the two cases. For example:
cell = makeCell(par,-1,-1);
The other option I see is to use a variable number of arguments:
Cell makeCell(Cell parent, ...);
but then you have the problem of determining how many arguments have been passed and if you can't do it looking at "parent", you're basically back to the previous case as you have to use a "special value" to specify how many parameters are there.
If this is a sort of constructor (as the name suggests) I would rather have two functions:
Cell makeCell(Cell parent);
Cell setCell(Cell cell, int dim, int iterations);
one that creates a new empty Cell and the other that sets what needs to be set. Of course, it depends on the nature of "Cell" if this is a viable option for you.