error LNK2001: unresolved external symbol
My head is bleeding but I can't figure it out...
main.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#include "cs187_week1.h"
int main(){
int menuOption = 0;
while (menuOption !=5){
while (menuOption < 1 || menuOption > 5){
system ("cls");
cout << "--------------MENU--------------\n\n";
cout << " 1. Factorial by iteration\n 2. Factorial by recursion";
cout << "\n 3. Fibonacci by iteration\n 4. Fibonacci by recursion\n 5. Exit\n";
cout << "--------------MENU--------------\n\n>> ";
cin >> menuOption;
if (menuOption < 1 || menuOption > 5){
cout << "\nERROR: Out of Range\n\n";
system ("pause");
}
}
system ("cls");
switch (menuOption){
case 1 : Factorials::iteration(); break;
case 2 : cout << "Not completed yet.\n"; break;
case 3 : cout << "Not completed yet.\n"; break;
case 4 : cout << "Not completed yet.\n"; break;
default : break;
} cout << "\n"; if (menuOption != 5){
system ("pause"); menuOption = 0;
}
}
return 0;
}
|
cs187_week1.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#include <iostream>
using namespace std;
class Factorials{
private:
static int userNumber;
static int getData(int &userNumber);
static void showData(int &userNumber);
public:
static void iteration();
static void recursion();
};
int Factorials::getData(int &userNumber){
cout << "Please enter a number between 1 and 10.\n>>";
cin >> userNumber;
while (userNumber < 1 || userNumber > 10){
cout << "\nERROR: Out of Range\n>>";
cin >> userNumber;
}
return userNumber;
}
void Factorials::showData(int &userNumber){
cout << "\n" << userNumber << "! is equal to: ";
cout << userNumber << "\n";
}
void Factorials::iteration(){
getData(userNumber);
for (int i = userNumber; i > 1; i--){
userNumber *= (i-1);
}
showData(userNumber);
}
void Factorials::recursion(){
}
|
and my error is:
1 2 3 4 5 6 7
|
1>Compiling...
1>main.cpp
1>Linking...
1>main.obj : error LNK2001: unresolved external symbol "private: static int Factorials::userNumber" (?userNumber@Factorials@@0HA)
1>C:\Users\hays.family\Documents\Visual Studio 2008\Projects\Discrete Structures Week 1 iteration vs recursion\Debug\Discrete Structures Week 1 iteration vs recursion.exe : fatal error LNK1120: 1 unresolved externals
1>Discrete Structures Week 1 iteration vs recursion - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
|
I know your pain.
Write this after line 12 in cs187_week1.h:
int Factorials::userNumber=0;
That's right. Static data has to be both declared and defined.
Me and my brain thank you... it works perfectly now.
Topic archived. No new replies allowed.