刚刚学完C++中的多态,但是之前学的知识很多地方不理解,打算用vs写个职工管理系统实践一下来巩固学到的知识,当我在写一个头文件时,发现即使是添加上了#include<string>和using namespace std;,当用到string时还是会报错“未定义标识符”,以下是我发现解决方案的过程:
1.在头文件中没必要加using namespace std;,因为这样会导致一个命名空间不被察觉的对一个源文件开放,所以最初我把头文件中的using namespace std删了,然后把每个string全部改成std::string,这样编译器就不报错了,但是有些麻烦。
2.后来我开始写.cpp文件,发现当我在.cpp文件中添加上using namespace std;后,即使把.h文件中的std::string改回string编译器也不会报错了!
所以解决方案为:
先不用管string未定义标识符这个报错,也不需要在头文件中加using namespace std,等到最终include该头文件的源文件中添加上using namespace std;后,头文件中的报错自然会消失。