在c ++程序中使用多个.cpp文件?

Rak*_*kso 49 c++ function

我最近从Java转向C++但是现在当我编写我的应用程序时,我不想在main函数中编写我想要的所有代码来调用另一个函数,但是另一个函数在另一个.cpp文件中.

如果你不理解,让我解释一下:
我有一个文件:main.cpp里面我有主要功能.

我有第二个文件:second.cpp里面我有一个函数叫second()我想second()从我的main函数调用这个函数调用..

有帮助吗?

Pup*_*ppy 72

您必须使用名为"标题"的工具.在标题中,您声明要使用的函数.然后将其包含在两个文件中.标头是使用该#include指令包含的单独文件.然后你可以调用另一个函数.

void MyFunc();
Run Code Online (Sandbox Code Playgroud)

  • 请问进一步解释.h文件的目的吗?在我看来,它不包含other.cpp文件中未提及的信息 (3认同)
  • 给收到“对 myFunc() 的未定义引用”的人的说明;你需要在编译命令中包含 `other.cpp`,这样链接器就知道 `myFunc()` 的实现...... `g++ main.cpp other.cpp`。 (3认同)
  • 我相信,在 other.cpp 中没有必要`#include "other.h"` (2认同)
  • @ MichaelD.Blake在此示例中,您是正确的。但是,实际的项目通常更复杂,而“ other.h”将定义在“ other.cpp”内部使用的_types_。通常`X.cpp`将包含`Xh`,因此您现在也可以习惯它。其他简化措施包括在“ other.h”中缺少头文件保护。 (2认同)

小智 18

您应该有包含函数声明的头文件(.h),然后是包含该定义的相应.cpp文件.然后,您可以在任何需要的位置包含头文件.请注意,包含定义的.cpp文件还需要包含(它对应的)头文件.

// main.cpp
#include "second.h"
int main () {
    secondFunction();
}

// second.h
void secondFunction();

// second.cpp
#include "second.h"
void secondFunction() {
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)


m_p*_*tor 6

在C/C++中,您有头文件(*.H).在那里你宣布你的功能/类.因此,例如,您将不得不#include "second.h"访问您的main.cpp文件.

second.h你刚刚声明这样你void yourFunction();second.cpp实现它就像

void yourFunction() { 
   doSomethng(); 
}
Run Code Online (Sandbox Code Playgroud)

别忘了#include "second.h"也在开头second.cpp

希望这可以帮助:)