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

Using multiple .cpp files in c++ program?

本文关键字:cpp 文件 c++ 程序      更新时间:2023-10-16

我最近从Java迁移到c++,但现在当我编写应用程序时,我对在主函数中编写所有代码不感兴趣,我想在主函数中调用另一个函数,但这个其他函数在另一个。cpp文件中。

如果你听不懂,我再解释一下:
我有一个文件:main.cpp,里面有main函数。

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

帮忙吗?

你必须使用一个叫做"header"的工具。在头文件中声明要使用的函数。然后将其包含在两个文件中。头文件是使用#include指令包含的单独文件。然后你可以调用另一个函数。

other.h

void MyFunc();

main.cpp

#include "other.h"
int main() {
    MyFunc();
}

other.cpp

#include "other.h"
#include <iostream>
void MyFunc() {
    std::cout << "Ohai from another .cpp file!";
    std::cin.get();
}

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

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

在C/c++中有头文件(*. h)。在这里声明函数/类。例如,你必须将#include "second.h"更改为main.cpp文件。

second.h中,您只需像这样声明void yourFunction();second.cpp中,您可以像

那样实现它
void yourFunction() { 
   doSomethng(); 
}

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

希望这对你有帮助

您可以简单地将second()函数的前向声明放在main()之上的main.cpp中。如果你的second.cpp有多个函数,你想把它们都放在main()中,把second.cpp中所有函数的前向声明放在一个头文件中,把#include放在main.cpp中。

这样的

-

Second.h:

void second();
int third();
double fourth();

main.cpp:

#include <iostream>
#include "second.h"
int main()
{
    //.....
    return 0;
}

second.cpp:

void second()
{
    //...
}
int third()
{ 
    //...
    return foo;
}
double fourth()
{ 
    //...
    return f;
}

注意:second.cpp中不需要#include "second.h"。编译器所需要的只是前向声明,链接器将在其他文件中搜索这些声明的定义。