2009-08-09 25 views
5

私はDeitelの本から別の演習をしようとしています。プログラムは毎月の金利を計算し、各貯蓄者の新しい残高を印刷します。演習は動的メモリに関連する章の一部であるため、私は "新しい"と "削除"演算子を使用しています。あるクラスのヘッダーファイル1つの未解決の外部ここで C++ LNK1120とLNK2019エラー:「未解決の外部シンボルWinMain @ 16」

LNK2019:未解決の外部シンボルのWinMain関数___tmainCRTStartupで参照16 @

致命的なエラーLNK1120何らかの理由で、私はこれらの2つのエラーを取得します。

//SavingsAccount.h 
//Header file for class SavingsAccount 

class SavingsAccount 
{ 
public: 
    static double annualInterestRate; 

    SavingsAccount(double amount=0);//default constructor intialize 
             //to 0 if no argument 

    double getBalance() const;//returns pointer to current balance 
    double calculateMonthlyInterest(); 
    static void modifyInterestRate(double interestRate): 

    ~SavingsAccount();//destructor 

private: 
    double *savingsBalance; 
}; 
メンバ関数と

CPPファイルを画成

//SavingsAccount class defintion 
#include "SavingsAccount.h" 

double SavingsAccount::annualInterestRate=0;//define and intialize static data 
             //member at file scope 


SavingsAccount::SavingsAccount(double amount) 
:savingsBalance(new double(amount))//intialize savingsBalance to point to new object 
{//empty body 
}//end of constructor 

double SavingsAccount::getBalance()const 
{ 
    return *savingsBalance; 
} 

double SavingsAccount::calculateMonthlyInterest() 
{ 
    double monthlyInterest=((*savingsBalance)*annualInterestRate)/12; 

    *savingsBalance=*savingsBalance+monthlyInterest; 

    return monthlyInterest; 
} 

void SavingsAccount::modifyInterestRate(double interestRate) 
{ 
    annualInterestRate=interestRate; 
} 

SavingsAccount::~SavingsAccount() 
{ 
    delete savingsBalance; 
}//end of destructor 

エンド最後にドライバプログラム:私はこれを理解しようとしている時間を費やしている

#include <iostream> 
#include "SavingsAccount.h" 

using namespace std; 

int main() 
{ 
SavingsAccount saver1(2000.0); 
SavingsAccount saver2(3000.0); 

SavingsAccount::modifyInterestRate(0.03);//set interest rate to 3% 

cout<<"Saver1 monthly interest: "<<saver1.calculateMonthlyInterest()<<endl; 
cout<<"Saver2 monthly interest: "<<saver2.calculateMonthlyInterest()<<endl; 

cout<<"Saver1 balance: "<<saver2.getBalance()<<endl; 
cout<<"Saver1 balance: "<<saver2.getBalance()<<endl; 

return 0; 
} 

〜と失敗。

答えて

7

「リンカー設定 - >システム」に進みます。 "Subsystem"フィールドを "Windows"から "Console"に変更します。

+0

それでした。ありがとう!!! – Mike55

2

新しいプロジェクトを作成する場合は、「Win32プロジェクト」ではなく「Win32コンソールアプリケーション」を選択します。

3

標準コンソールアプリケーション(あなたにはint main()があります)を作成しているようですが、リンカがウィンドウエントリポイントWinMainを見つけようとしているようです。

youtプロジェクトのプロパティページのリンカセクションのSystem/SubSystemオプションで、「Windows(/ SUBSYSTEM:WINDOWS)」が選択されていますか?もしそうなら、それを "Console(/ SUBSYSTEM:CONSOLE)"に変更してみてください。

関連する問題