C++ 正在检查未在main()中使用的头文件
我的问题是编译器/intellisense是否正在处理main()中未使用的头文件/cpp文件。或者我必须将类中的每个函数都放在main()中,以检查其是否正确(这些类当然位于同一目录中)?因为最近我可以写完全错误的代码。 比如说 foo.cppC++ 正在检查未在main()中使用的头文件,c++,header,include,intellisense,C++,Header,Include,Intellisense,我的问题是编译器/intellisense是否正在处理main()中未使用的头文件/cpp文件。或者我必须将类中的每个函数都放在main()中,以检查其是否正确(这些类当然位于同一目录中)?因为最近我可以写完全错误的代码。 比如说 foo.cpp #include "foo.h" // some class bool foo::bar() { return "a"; } 但是如果我不把它放在main()中,它就会编译(当然,如果main中的代码是正确的)。我试着构建、清理、重建、重新启动、
#include "foo.h" // some class
bool foo::bar()
{
return "a";
}
但是如果我不把它放在main()中,它就会编译(当然,如果main中的代码是正确的)。我试着构建、清理、重建、重新启动、重新安装等等。我仍然没有错误。即使我将其包含在main.cpp中,它仍将构建和编译
我使用Visual Studio 2013 Professional x86版本。作为操作系统Windows 7 x64
编辑:
嗯,它仍然没有像应该的那样运行。我想Visual Studio可能无法识别.cpp文件。我没有收到任何错误或警告。另外,在我将“创建方法实现”按到.cpp文件后,Visual Assists似乎不会移动我的方法。我尝试重新安装Visual Studio 2013,将其更新为,并重新安装了Visual Assist。我真的不明白。以前有人遇到过这种情况吗?您的函数
foo::bar()
实际上是有效的C++:“a”
是字符串文字,它是一个字符数组。与所有数组一样,它可以隐式转换为指向其初始元素的指针,并且与所有指针一样,该指针可以隐式转换为bool
(其中nullptr
变为false
,所有其他指针变为true
)
编译器将编译项目中的所有源文件。只有当它能够确定某个源文件以及该源文件包含的所有头都没有更改时,才会跳过该源文件的重新编译。如果在任何源文件中都不包含头文件,则永远不会编译该头文件。是否使用
main()
中的代码无关紧要。是的,编译器编译文件夹中包含的所有头文件。如果头文件有任何错误,系统将通知您,并将发生编译错误。很抱歉,这是一个错误的示例。事实上,我可以写任何东西,它将被接受。我认为这更正确。bool-foo::bar(){}看来VS并不在乎我写什么。因为我可以把头撞在键盘上,但仍然不会出错。我明白了。我猜是Visual Studio 2013/IntelliSense。这很奇怪,因为它过去工作得很好,我surley没有改变任何设置。