【发布时间】:2017-10-27 04:13:43
【问题描述】:
我正在研究一个骰子类,它允许用户输入骰子的面数并输出每个骰子的滚动数和结果数。我对课程非常陌生,我知道我把它们搞砸了,但现在无法通过它们,因为链接器在 Xcode 和代码块中给了我一个错误。
确切的错误是:
Undefined symbols for architecture x86_64:
"GameDie::GameDie()", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
这是我的程序代码:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int x = 0;
int sides;
class GameDie
{
public:
GameDie();
int roll();
void getNumSides(int numSides);
void getNumRolls();
private:
int numRolls;
int numSides;
};
int main()
{
srand(time(0));
cout << "Enter number of sides: ";
cin >> sides;
GameDie die1;
die1.roll();
die1.getNumSides(sides);
die1.getNumRolls();
return 0;
}
int GameDie::roll()
{
return (rand() % sides) + 1;
}
void GameDie::getNumSides(int sides)
{
numSides = sides;
}
void GameDie::getNumRolls()
{
x++;
cout << "Roll " << x << " of die with " << sides << " sides";
}
【问题讨论】:
-
int roll() { ... }或int GameDie::roll() { ... }?getNumSides你做对了,为什么其他成员函数不做? -
你需要输入
void GameDie::getNumRolls() -
好消息@Someprogrammerdude。修复了它,虽然它对链接器问题没有影响。
-
也修复了另一个@yacc,谢谢。更新了错误消息,但不知道那是指什么...