C++ 包含并从其他文件运行函数

C++ 包含并从其他文件运行函数,c++,function,C++,Function,我有两个文件,main.cpp和xyz.cpp,xyz.cpp有进行一些计算的函数(应该在最后输出),我想从main.cpp中的开关调用这个函数 main.cpp: #包括 #包括 #包括 #包括“xyz.cpp” int-cl; 使用名称空间std; int main(int argc,const char*argv[]{ cout>cl; 开关(cl){ 案例(1):{ //我想应该叫这里 } } 返回0; } xyz.cpp: 使用名称空间std; int函数(){ cout>a; o

我有两个文件,main.cpp和xyz.cpp,xyz.cpp有进行一些计算的函数(应该在最后输出),我想从main.cpp中的开关调用这个函数

main.cpp:

#包括
#包括
#包括
#包括“xyz.cpp”
int-cl;
使用名称空间std;
int main(int argc,const char*argv[]{
cout>cl;
开关(cl){
案例(1):{
//我想应该叫这里
}
}
返回0;
}
xyz.cpp:


使用名称空间std;
int函数(){
cout>a;
o1p1=(1+cos(4*a));
o1p2=(1+cos(2*a));
o1=((sin(4*a))/o1p1)*((cos(2*a))/o1p2);
不能重命名您的方法,否则调用将是不明确的

使用名为“xyz.h”的头文件,在其中声明方法。然后,在main.cpp文件中,包括该头文件(而不是其源文件)。源文件“xyz.cpp”也应该包括头文件。然后在main.cpp中,只需像这样调用该方法:
int returnedValue=myFunction();

完整示例:

xyz.h

xyz.cpp

#include <iostream>
#include <cmath>
#include "xyz.h"
using namespace std;
int myFunction() {
    float a, o1p1, o1p2, o1;
  cout << "Input number: "; 
  cin >> a;

  o1p1 = (1+cos(4*a)); 
  o1p2 = (1+cos(2*a)); 

  o1 = ((sin(4*a))/o1p1)*((cos(2*a))/o1p2);   

  cout << "\nZ1 = ";
  cout << o1;  
  cout << "\n "; 

  return 0;
}

在你有意见的地方,只需写下:

function();
但是,请注意,通常您希望包含头文件(即包含函数声明的文件),而不是源文件(包含定义的文件)

在标题中,您将有:

int function();
源文件应该是相同的

请注意,这意味着您必须编译两个源文件,而不仅仅是主文件

Georgioss-MBP:Desktop gsamaras$ g++ main.cpp xyz.cpp -lm
Georgioss-MBP:Desktop gsamaras$ ./a.out 
Make ur choice (1-1)1
Input number: 2

Z1 = -2.18504
 0
function();
int function();