gpt4 book ai didi

c++ - Xcode 链接器命令失败,退出代码为 1 c++

转载 作者:可可西里 更新时间:2023-11-01 18:37:38 25 4
gpt4 key购买 nike

我编写了一系列简单的函数。当我尝试调用最后一个函数时,出现“链接器命令”错误。语法正确,但我的程序无法编译。我是否遗漏了什么或者这是一个 IDE 问题?

    #include <iostream>
#include <cstdlib>
#include <ctime>
#include <time.h>

using namespace std;


// Function Prototypes
int numGen ();
int questSol ();
int questAns ();


int main() {

// Store values of functions in variables
int ans = questAns();
int sol = questSol();


if (ans == sol){
cout << "Very good! Press Y to continue" << endl;
questAns();
} else {
cout << "Incorrect. Please try again" << endl;
cin >> ans;
if(ans == sol){
questAns();
}
}


return 0;

};

//Generates two random numbers between zero and ten and returns those numbers
int numGen () {

srand(time(0));
int one = rand() % 10;
int two = rand() % 10;

return one;
return two;
};

//Takes in the random numbers, multiplies them, and returns that result


int questSol (int one, int two) {


int solution = one * two;


return solution;
}


//Takes in random numbers, displays them in cout statement as question, receives and returns user answer to
//question


int questAns (int one, int two) {

int answer;

cout << "How much is " << one << " times " << two << "? \n";
cin >> answer;


return answer;
}

最佳答案

你转发声明一个函数:

int   questAns ();

然后定义一个带有签名的函数:

int questAns (int one, int two);

在 C++ 中,函数可以具有相同的名称但具有不同的参数(重载函数),因此您从未实际定义您转发声明然后尝试调用的 questAns。

注意:你和questSol有同样的问题。

看来你还不太了解局部变量的作用域。

在 numGen 中,您定义了两个整数,一和二。 block 内定义的变量(花括号:{})仅存在于该 block 内。他们是本地人。该标识符仅在其定义的最内层 block 内有效,并且一旦退出它,该内存就会被释放。像您尝试的那样返回两个整数也是不可能的。

看起来您希望这些整数可用于您的其他两个函数。

您可以做的最小的改变是制作一个和两个 global 变量。这意味着您可以在任何 block 之外定义它们(通常在代码的最顶部)。然后从函数定义中删除参数列表,因为所有函数都可以看到全局变量。这通常被认为是糟糕的编程习惯,因为在更复杂的程序中,全局变量会对您的代码造成严重破坏,但在这个简单的程序中它会起作用,并让您有机会练习理解变量范围。

另一个解决方案,更符合您的尝试,是定义一个包含两个整数的数组,然后返回它。然后将该数组传递给其他两个函数。那会是更好的方法,并且让您有机会了解数组。

关于c++ - Xcode 链接器命令失败,退出代码为 1 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33338566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com