It has been a while since I have done any c++ programming, but I think you have to put the namespace in front of the string in your parameter list just like you did in the private section.
" CubeMap(std::string Directory,....);"
Because all names in the standard library is inside the std namespace and that's why you have to add the std:: prefix. It does this mainly to avoid that name clashes with your own code or with other libraries that you use.
Because as Peter87 said, everything in the standard library lives inside the std:: namespace. This is to avoid name clashes with your own code or other 3rd party libraries.
If you are not familiar with namespaces I suggest you read up on them: