在A.h
上我不需要#include
任何东西或使用命名空间来做任何事情。
在另一个标题上,B.h
我必须包含vector
和using namespace std
。这两个标题都没有链接。似乎是一个文件问题。当我将A.h
(没有任何问题)的内容复制到B.h
时,我仍然收到编译错误,指出string
不是类型名称而vector
不是模板虽然当A.h
上有相同的内容时,编译器没有说明任何内容。我在visual studio上编写c ++代码。发生了什么事?
答案 0 :(得分:1)
您的标头文件的前几行应该包含#include <string>
和#include <vector>
。然后,当您在程序或标题文件中引用这些类型时,我建议您参考std::string
和std::vector
。正如@NathanOliver指出的那样,使用这样的限定引用是using namespace std
的首选替代方法。