in reply to Creating Common Constructor

Use the factory pattern in your Zoo object. It will create objects on your set of animal's behalf.

Don't create a method for each count. If you can ID each object created in a generic fashion, then you can use a hash/map to keep track. Then when you want to know the counts, just feed it to a function taht can also figure out the ID w/o instanciation.