Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c++;节目? 我最近从java中移到C++,但是现在我在写应用程序时,我不感兴趣的是把代码中的所有代码写在main函数中,我想在main函数中调用另一个函数,但是这个函数在另一个.CPP文件中。_C++_Function - Fatal编程技术网

在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;
}