간단한 코드의 링크에러의 이유를 모르겠습니다.
글쓴이: 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
댓글 달기