간단한 코드의 링크에러의 이유를 모르겠습니다.
글쓴이: Geniys / 작성시간: 토, 2005/12/17 - 4:44오후
다음의 코드가 컴파일은 되나 링크시 다음과 같은 에러가 발생합니다.
그런데 도대체 모르겠군요 ㅠ,ㅠ
코드 부분
#include <iostream>
using namespace std;
class BankAccount
{
public:
void set(int dollers, int cents, double rate);
void set(int dollers, double rate);
void update();
double get_balance();
double get_rate();
void output(ostream& outs);
double difference(BankAccount cn1, BankAccount cn2);
private:
double balance;
double interest_rate;
double fraction(double percent);
};
int main()
{
BankAccount account1, account2;
cout << "Start of Test:\n";
account1.set(123, 99, 3.0);
cout << "account 1 initial statement:\n";
account1.output(cout);
account1.set(100, 5.0);
cout << "account1 with new setup:\n";
account1.output(cout);
account1.update();
cout << "account1 after update:\n";
account1.output(cout);
account2 = account1;
cout << "account2:\n";
account2.output(cout);
cout << account1.difference(account1, account2) << endl;
return 0;
}
double difference(BankAccount cn1, BankAccount cn2)
{
return (cn1.get_balance() - cn2.get_balance());
}
void BankAccount::set(int dollers, int cents, double rate)
{
if(dollers < 0 || cents < 0 || rate < 0)
{
cout << "Illegal values for money or interest rate.\n";
exit(1);
}
balance = dollers + 0.01 * cents;
interest_rate = rate;
}
void BankAccount::set(int dollers, double rate)
{
if(dollers < 0 || rate < 0)
{
cout << "Illegal values for money or interest rate.\n";
exit(1);
}
balance = dollers;
interest_rate = rate;
}
void BankAccount::update()
{
balance = balance + fraction(interest_rate) * balance;
}
double BankAccount::fraction(double percent_value)
{
return (percent_value/100.0);
}
double BankAccount::get_balance()
{
return balance;
}
double BankAccount::get_rate()
{
return interest_rate;
}
void BankAccount::output(ostream& outs)
{
outs.setf(ios::fixed);
outs.setf(ios::showpoint);
outs.precision(2);
outs << "Account balance $" << balance << endl;
outs << "Interest rate " << interest_rate << "%" << endl;
}
에러부분
Quote:
Linking...
ConsoleTest.obj : error LNK2001: unresolved external symbol "public: double __thiscall BankAccount::difference(class BankAccount,class BankAccount)" (?difference@BankAccount@@QAENV1@0@Z)
Debug/ConsoleTest.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.ConsoleTest.exe - 2 error(s), 0 warning(s)
VC 6.0에서 컴파일 했습니다.
Forums:


123
>> double difference(BankAccount cn1, BankAccount cn2)
double BankAccount::difference(BankAccount cn1, BankAccount cn2)
답변입니다.
#include <iostream> 이 아니라
#include <iostream.h> 아닌가요?
어이가 없군요....[quote]double BankAcc
어이가 없군요....
BankAccount 이것을 빼먹다니...
============================
A watched pot never boils
댓글 달기