在c++;节目? 我最近从java中移到C++,但是现在我在写应用程序时,我不感兴趣的是把代码中的所有代码写在main函数中,我想在main函数中调用另一个函数,但是这个函数在另一个.CPP文件中。
如果你不明白,让我解释清楚:在c++;节目? 我最近从java中移到C++,但是现在我在写应用程序时,我不感兴趣的是把代码中的所有代码写在main函数中,我想在main函数中调用另一个函数,但是这个函数在另一个.CPP文件中。,c++,function,C++,Function,如果你不明白,让我解释清楚: 我有一个文件:main.cpp里面有main函数 我有第二个文件:second.cpp在我的内部有一个名为second()的函数,我想从我的主函数调用这个名为second()的函数 有什么帮助吗?您必须使用名为“标题”的工具。在标题中声明要使用的函数。然后将其包含在两个文件中。标头是使用#include指令包含的单独文件。然后您可以调用另一个函数 其他 void MyFunc(); main.cpp #包括“other.h” int main(){ MyFunc(
我有一个文件:
main.cpp
里面有main函数
我有第二个文件:second.cpp
在我的内部有一个名为second()
的函数,我想从我的主函数调用这个名为second()
的函数
有什么帮助吗?您必须使用名为“标题”的工具。在标题中声明要使用的函数。然后将其包含在两个文件中。标头是使用
#include
指令包含的单独文件。然后您可以调用另一个函数
其他
void MyFunc();
main.cpp
#包括“other.h”
int main(){
MyFunc();
}
其他.cpp
#包括“other.h”
#包括
void MyFunc(){
std::cout在C/C++中,您有头文件(*.H)。在这里您声明了您的函数/类。因此,例如,您必须将“second.H”包含到main.cpp
文件中
在second.h
中,您只需这样声明void yourFunction();
在second.cpp中,您可以像
void yourFunction() {
doSomethng();
}
别忘了在second.cpp的开头加上“second.h”
希望这对您有所帮助:)您应该有包含函数声明的头文件(.h),然后是包含定义的相应.cpp文件。然后,您可以在需要的任何地方包含头文件。请注意,包含定义的.cpp文件也需要包含(它对应的)头文件
// main.cpp
#include "second.h"
int main () {
secondFunction();
}
// second.h
void secondFunction();
// second.cpp
#include "second.h"
void secondFunction() {
// do stuff
}
您只需将second()
函数的前向声明放在main.cpp
上方的main()
中即可。如果您的second.cpp
有多个函数,并且希望将所有函数都放在main()
,将second.cpp
中所有函数的前向声明放入头文件,并将其包含在main.cpp
中
像这样-
第二,h:
void second();
int third();
double fourth();
main.cpp:
#include <iostream>
#include "second.h"
int main()
{
//.....
return 0;
}
注意:不必#包括“second.h”<代码>第二页.CPP < /COD>。所有编译器需要的是前向声明,链接器将执行搜索其他文件中声明的定义的工作。您是否正在学习C++?来自井头文件是答案,因此,您知道这些错误后,您不知道自己在做什么。你得到的是错误,否则我们只是猜测。不要因为你在问题中提到了语言就用语言标记。我可以要求进一步解释一下.h文件的用途吗?在我看来,它不包含其他.cpp文件中未提及的信息。我相信,#没有必要包含“other.h”
在其他位置。cpp@MichaelD.Blake在本例中,您是正确的。但是,实际项目通常更复杂,other.h
将定义在other.cpp
中使用的类型。通常X.cpp
将包含X.h
,因此您现在可以习惯它。其他简化包括缺少header守卫在other.h
中。这是对接收到对myFunc()的未定义引用的人的说明。
;您需要在编译命令中包含other.cpp
,以便链接器知道myFunc()的实现
…g++main.cpp other.cpp
@jackw1111,是的。未定义的引用存在问题。这意味着,如果有多个cpp文件,我是否应该将它们全部作为参数包含?
void second()
{
//...
}
int third()
{
//...
return foo;
}
double fourth()
{
//...
return f;
}