Включить и запустить функцию из другого файла - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть 2 файла, main.cpp и xyz.cpp, xyz.cppp имеют функцию, которая делает некоторые вычисления (и должна выводить их в конце), и я хочу вызвать эту функцию из switch в main.cpp

main.cpp:

#include <iostream>
#include <math.h>
#include <cstdlib> 
#include "xyz.cpp"

int cl;
using namespace std;
int main(int argc, const char * argv[]){
    cout << ("Make ur choice (1-1)");
    cin >> cl;

    switch(cl){
        case (1):{
            // I suppose it should be called here somehow 
        }
    }

    return 0;
}

xyz.cpp:


    using namespace std;
    int function() {


        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;

}

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Там, где у вас есть комментарий, просто напишите:

function();

Однако обратите внимание, что обычно вы захотите включить заголовочные файлы (то есть файл с объявлениями функций), а не исходные файлы (файл с определениями).

В заголовке у вас будет:

int function();

Исходный файл будет таким же.

Обратите внимание, что это будет означать, что вам придется скомпилировать оба исходных файла, а не только основной.

0 голосов
/ 26 сентября 2019

Переименуйте ваш метод, в противном случае вызов будет неоднозначным.

Используйте заголовочный файл с именем "xyz.h", где вы объявляете свой метод,Затем в файле main.cpp включите этот заголовочный файл (вместо его исходного файла).Исходный файл "xyz.cpp" должен также включать заголовочный файл.Затем в main.cpp просто вызовите метод следующим образом: int returnedValue = myFunction();

Полный пример:

xyz.h

#ifndef XYZ_H
#define XYZ_H

int myFunction();

#endif /* 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;
}

main.cpp

#include <iostream>
#include "xyz.h"

using namespace std;
int main(int argc, const char * argv[]) {
      int cl;
    cout << ("Make ur choice (1-1)");
    cin >> cl;

    switch(cl){
        case (1):{
            int returnedValue = myFunction();
            cout << returnedValue << endl;
        }
    }

    return 0;
}

Вывод:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...