从 C++ 中的单独文件导入函数

Import function from separate file in C++

提问人:Username008445 提问时间:4/19/2023 最后编辑:MatUsername008445 更新时间:4/20/2023 访问量:57

问:

我正在尝试将“指数”函数从库 .cpp 导入到 main.cpp,但我得到

错误:调用“Exponent”没有匹配函数

  else if (op == "**") {result =  Exponent(x,y);}

主 .cpp

#include <iostream>
#include <cmath>
#include "library.cpp"
using namespace std;



int main() {
  int x;
  int y;
  int result;
  string op;
  
  cout << "CALCULATOR" << endl;
  cout <<"Enter two numbers then an operator" << endl;
  cout << "1st Number: ";
  cin >> x;
  cout << "2nd Number: ";
  cin >> y;
  cout << "Operator(+,-,*,/,**): ";
  cin >> op;

  if (op == "+") {result = x + y;}
  else if (op == "-") {result = x - y;}
  else if (op == "*") {result = x * y;}
  else if (op == "/") {result = x / y;}
  else if (op == "**") {result =  Exponent(x,y);}
  
  cout << x << " " << op << " " << y << " = " << result <<endl;
  
  return 0;
}

库 .cpp


int Exponent(int x,int y, int result) {
 for(int i = 0; i < y; ++i)
{
    return result = result + x * x;
}
   
}
C++ 函数 输入 包括

评论

7赞 Botje 4/19/2023
根据经验,几乎总是错误的。您应该定义一个仅包含函数签名的头文件,并包含该文件。#include "foo.cpp"library.h
2赞 Botje 4/19/2023
你用三个参数定义,用两个参数调用它。你希望编译器为第三个做什么?Exponent

答:

2赞 john 4/19/2023 #1

这里有很多问题。

下面是一个有效的指数函数

int Exponent(int x, int y) {
    int result = 1;
    for(int i = 0; i < y; ++i)
    {
        result *= x;
    }
    return result;
}

请注意,此问题与“导入”无关。即使您的函数在 .将大问题分解为小问题是编程的关键部分。这里更好的方法是先让函数工作,然后再尝试将其移动到不同的 cpp 文件。尝试一次解决一个问题,然后当它不起作用时,你就会更好地了解问题出在哪里。Exponentmain.cppmain.cpp