the*_*ux4 4 c++ compiler-errors header include
class A{
private:
std::string id;
public:
void f();
};
Run Code Online (Sandbox Code Playgroud)
给出编译时错误.但是,如果我include <string>在顶部,它会正确编译.但是,我不想在标题中使用include语句.我该怎么做?
Pup*_*ppy 13
在其他标题中包含标题是完全必要的.尽可能减少它是明智的,但从根本上说,如果你的课程依赖std::string,那么你别无选择,只能#include <string>在标题中.此外,根据任何和/或所有标准类,绝对没有任何问题 - 毕竟,它们被强制要求在任何实现上提供.这是using namespace std;令人不悦的.
Jes*_*ond 12
<string>在这种情况下,您必须包括才能使用std::string.
唯一可以避免#including标题的时刻是你只使用标题中对象的引用或指针.在这种情况下,您可以使用前向声明.但由于std :: string是一个typedef,你不能转发声明它,你必须包含它.
我确定你试图按照建议#include尽可能少地尝试,但在这种情况下你不能遵循它.