mike_hale
asked on
Passing a data structure by reference causes lnk2019 error
I'm pasting the code below, and the function in question at the top again.
The function immediately below causes the error. If I pass by value, it doesn't throw the error at me. I've also posted the error below.
Thanks!
void fnCalculate(userInput& tempVar1){
}
Error 1 error LNK2019: unresolved external symbol "void __cdecl fnCalculate(struct userInput)" (?fnCalculate@@YAXUuserInp ut@@@Z) referenced in function "void __cdecl fnGetUserInput(void)" (?fnGetUserInput@@YAXXZ) main.obj
The function immediately below causes the error. If I pass by value, it doesn't throw the error at me. I've also posted the error below.
Thanks!
void fnCalculate(userInput& tempVar1){
}
Error 1 error LNK2019: unresolved external symbol "void __cdecl fnCalculate(struct userInput)" (?fnCalculate@@YAXUuserInp
#include <iostream>
using namespace std;
struct userInput{
int units;
int session;
int residency;
char parking;
char sticker;
char IDCard;
};
char fnTryAgain(char);
void fnGetUserInput();
void fnCalculate(userInput);
int main()
{
int varAnswer=1;
cout << "Programing running..." <<endl;
cout << "SMC Fee Calculator."<<endl;
while (varAnswer == 1)
{
fnGetUserInput();
varAnswer = fnTryAgain(' ');
}
return 0;
}
void fnGetUserInput()
{
userInput strInput;
cout << "Enter the number of units enrolled: ";
cin >> strInput.units;
cout << "Is this Fall[0], Winter[1], Spring[2] or Summer[3]: ";
cin >> strInput.session;
cout << "Are you a state resident[0], non-resident[1] or F1 Visa holder[2]: ";
cin >> strInput.residency;
cout << "Do you want a parking decal [y/n]: ";
cin >> strInput.parking;
cout << "Do you want an AS sticker [y/n]: ";
cin >> strInput.sticker;
cout << "Do you want an ID card [y/n]: ";
cin >> strInput.IDCard;
fnCalculate(strInput);
}
void fnCalculate(userInput& tempVar1){
}
char fnTryAgain(char varReply2)
{
char varReply1=' ', varReply=' ';
cout << endl << endl << "Try another scenario? Enter n for no, any other key for yes: ";
cin >> varReply1;
if (varReply1 == 'n'){
varReply = 0;
}
else if (varReply1 == 'N'){
varReply = 0;
}
else
varReply = 1;
return varReply;
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you!
ASKER
Duh! That worked. Thank you Jaime!