gpt4 book ai didi

c++ - undefined reference ?

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:41 24 4
gpt4 key购买 nike

我正在用 C++ 编写掷骰子 cootie 游戏的代码,但我一直遇到错误代码“未定义对‘cootieComplete(int)’的引用”,而且我不确定如何修复它。作业是创建一个虱子游戏,您可以在其中掷骰子,然后应用它为虱子添加不同的 body 部位。

这是我的代码。

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

using namespace std;
int rolldice();
int applyroll(int);
bool cootieComplete(int);
void printCootie(int);

int numBody=0;
int numHead=0;
int numAntenna=0;
int numWings=0;
int numTongue=0;
int numLeg=0;

int main(int argc, char *argv[])
{
int diceroll;
int apply;
srand(time(0));
do {
diceroll = rolldice();
apply = applyroll(diceroll);
printCootie(diceroll);
}
while (!cootieComplete(apply)) ;


system("PAUSE");
return EXIT_SUCCESS;
}

int rolldice()
{
int diceroll = rand() % 6 + 1;
return diceroll;
}

int applyroll(int diceroll){

if (diceroll == 1)
{
numBody++;
}

if (diceroll == 2 && numBody >= 1)
{
numHead++;
}

if (diceroll == 3 && numHead >=1)
{
numAntenna++;
}

if (diceroll == 4 && numBody >= 1)
{
numWings++;
}

if (diceroll == 5 && numHead >= 1)
{
numTongue++;
}

if (diceroll == 6 && numBody >= 1)
{
numLeg++;
}
return diceroll;
}

bool cootieComplete(int numBody,int numHead,int numAntenna,int numWings,int numTongue,int numLeg) {
if (numBody>0&&numHead>0&&numAntenna>1&&numWings>1&&numTongue!=0&&numLeg>=4) {
return true;
}
else {
return false;
}
}

void printCootie(int diceroll){

if (diceroll == 1)
{
cout << "Body Added!" << endl;
cout << "There are " << numBody << " body, " << numHead << " head, " << numAntenna << " antenna, " << numWings << " wings, " << numTongue << " tongues, " << numLeg << " legs." << endl;
}

if (diceroll == 2 && numBody >= 1)
{
cout << "Head Added!" << endl;
cout << "There are " << numBody << " body, " << numHead << " head, " << numAntenna << " antenna, " << numWings << " wings, " << numTongue << " tongues, " << numLeg << " legs." << endl;
}
else if (diceroll == 2)
{
cout <<"No body, you can't add head!";
}

if (diceroll == 3 && numHead >=1)
{
cout << "Antenna Added!"<<endl;
cout << "There are " << numBody << " body, " << numHead << " head, " << numAntenna << " antenna, " << numWings << " wings, " << numTongue << " tongues, " << numLeg << " legs." << endl;
}
else if (diceroll == 3)
{
cout << "No head, you can't add antenna!";
}

if (diceroll == 4 && numBody >= 1)
{
cout<<"Wing Added!" << endl;
cout << "There are " << numBody << " body, " << numHead << " head, " << numAntenna << " antenna, " << numWings << " wings, " << numTongue << " tongues, " << numLeg << " legs." << endl;
}
else if (diceroll == 4)
{
cout << "No body, you can't add wings!";
}

if (diceroll == 5 && numHead >= 1)
{
cout<<"Tongue Added!" << endl;
cout << "There are " << numBody << " body, " << numHead << " head, " << numAntenna << " antenna, " << numWings << " wings, " << numTongue << " tongues, " << numLeg << " legs." << endl;
}
else if (diceroll == 5)
{
cout << "No head, you can't add tongue!";
}

if (diceroll == 6 && numBody >= 1)
{
cout<<"Leg Added!" << endl;
cout << "There are " << numBody << " body, " << numHead << " head, " << numAntenna << " antenna, " << numWings << " wings, " << numTongue << " tongues, " << numLeg << " legs." << endl;
}
else if (diceroll == 6)
{
cout << "No body, you can't add legs";
}

}

最佳答案

声明 cootieComplete 取 1 个 int,定义它取 6,然后调用取 1 的版本。

// Declaration
bool cootieComplete(int);

...

while (!cootieComplete(apply))

....

// Definition
bool cootieComplete(int numBody,int numHead,int numAntenna,int numWings,int numTongue,int numLeg)

由于您调用的版本以 1 个 int 作为参数,编译器正在寻找 cootieComplete(int) 的定义,但找不到它,因此抛出 undefined reference错误。

他们需要匹配。所以像这样定义它:

bool cootieComplete(int, int, int, int, int, int);

关于c++ - undefined reference ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22495060/

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