Hello SirSkunks,
Welcome to the forum,
In the first bit of code I see nothing wrong at the moment except for HUMAN, ELF etc. I hope that this come from an enum in the public area of the class. If not it will not work because a switch works on an "int" or "char", a type of "int", type.
In the "Traits" function I question if the if statement would even work. Since the "cin" is to a std::string it is hard to make "cin" fail as the string will take anything as far as I know. This works better when "cin" is to a numeric variable and you try to enter something other than a number.
"system("anything")" should be avoided as it does not work on all operating systems and can leave your program vulnerable to attack. See
http://www.cplusplus.com/forum/beginner/1988/ for some ideas to pause the program. I like using this:
std::this_thread::sleep_for(std::chrono::seconds(3)); // Requires header files "chrono" and "thread"
to put a timed pause in a program.
I am guessing that "Character" is a class? Lines 14 - 24 create several pointers of the class with different names for these pointers, but you never store any information into these pointers before you use them. As an example line 28 the variable "races" is a pointer to the class. If anything would print it would be the address of the pointer. I think what you want here is something like
cout << "Race: " << races->getRaces() << endl;
. Just guessing at the function name here. Even with that I do not see where you have stored any information under the pointer "races". The same is partially true for the rest of the "cout" statements.
Without the class definition and maybe some more code a lot of this is just guessing based on what I can see.
Hope that is of some help,
Andy