It looks like your Date class will need a copy constructor and a default constructor.
In Animal::Write you try to stream the return value from ShowData() but it has void return type.
in main() you are trying to access the enums from Animal; firstly, as ne555 says, the are not public so this will never work, make them public! Even then it wont work, because the enums are inside the Animal class. You will need Animal::bird to access those (after they are public).
@117 you redeclare outfile when it was already a parameter
Some of these errors may be my IDE/compiler as it's giving me errors with getchar and fflush |
no, it will all be your code :) errors like that just mean that you haven't included something that you are trying to use.
fixing the few points i have made above should make the error list a bit more readable. But all in all you need to get cracking on those error and warning messages. Take them one at a time and just keep hammering away at them. Its as big a part of the job as the coding is. never let that list get big because it will demoralise you.
Some of them are simple issues that you can fix yourself but require some careful reading of the output to see what the actual error is. Especially the ones that are reported near template problems, template warning generate lots of output and can be difficult to read, you just have to be strong willed and try to isolate a message in the output and concentrate on that.
example
107:52: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'void')
the clue here is 'void' why are you trying to stream a void? Obviously you're not deliberately trying to stream a void, so how did the void get in there? a quick check shows that ShowData() returns a void.
In short, dont left the amount of build errors put you off. Just keep chipping away at them.
Just as a tip here, compile often! dont write reams of code and then have to sit through reams of errors. compile often and clear as many warnings/errors as you can before writing more.