If I read the C++ Standard document right, the "string" is declared in the "std" namespace. I think the include directive: #include<string> only includes the string's prototypes.
If you don't want to use the usingnamespace std; directive (this imports everything from the std namespace into the global namespace, typically don't want to pollute the global namespace that much)
Then just use either using std::string instead of the full namespace directive OR (this is the preferred way when writing classes in header files) Instead of string using std::string