title: 关于C++头文件包含的问题，《C++Primer》练习12.30？
desc: 在TextQuery.h和QueryResult.h中都只写了声明，在QueryResult.cpp文件中包含了TextQuery.h会有图一的错误，然后在QueryResult.h里包含TextQuery.h后能编译运行，什么原因呢？<img src
topic: C / C++
content: 因为实现成员函数的地方必须要能看到整个类的声明，不能只有前置声明。事实上今天CPU和硬盘已经很快了，完全没有必要用这些奇技淫巧来提高什么编译速度。GacUI写了十几万行（有一半是模板）也就编译个几分钟（Ubuntu下乘10（逃）。而Office都已经这么大了，我们对提高编译速度所做的所有努力（最近速度还提高了3倍），仍然完全不包括前置声明。现在已经不需要这些东西了。C的前置声明就只能用于下面的一种情况：两个类要互相
answerer_tags: 专业造轮子，拉黑抢前排。gaclib.net