2009-08-09 12 views
5

मैं डीटेल की पुस्तक से एक और अभ्यास करने की कोशिश कर रहा हूं। कार्यक्रम मासिक ब्याज की गणना करता है और प्रत्येक बचतकर्ताओं के लिए नए शेष को प्रिंट करता है। चूंकि अभ्यास गतिशील स्मृति से संबंधित अध्याय का हिस्सा है, इसलिए मैं "नया" और "हटाएं" ऑपरेटर का उपयोग कर रहा हूं।सी ++ एलएनके 1120 और एलएनके2019 त्रुटियां: "अनसुलझा बाहरी प्रतीक WinMain @ 16"

LNK2019: अनसुलझे बाह्य प्रतीक WinMain @ 16 समारोह ___tmainCRTStartup में संदर्भित

गंभीर त्रुटि LNK1120: किसी कारण के लिए, मैं इन दो त्रुटियों मिल 1 अनसुलझे बाहरी

यहाँ वर्ग हेडर फाइल ।

//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; 
}; 
सदस्य समारोह के साथ

सीपीपी फाइल परिभाषा

//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

"लिंकर सेटिंग्स -> सिस्टम" पर जाएं। "विंडोज़" से "कंसोल" में "सबसिस्टम" फ़ील्ड बदलें।

+0

पर बदलने का प्रयास करें। धन्यवाद!!! – Mike55

2

एक नई परियोजना बनाते समय, "Win32 प्रोजेक्ट" के बजाय "Win32 कंसोल एप्लिकेशन" का चयन करें।

3

ऐसा लगता है कि आप एक मानक कंसोल एप्लिकेशन लिख रहे हैं (आपके पास int main() है), लेकिन यह कि लिंकर विंडोज एंट्री पॉइंट WinMain ढूंढने की उम्मीद कर रहा है।

आपके प्रोजेक्ट के प्रॉपर्टी पेजों में, लिंकर सेक्शन, सिस्टम/सबसिस्टम विकल्प में, क्या आपके पास "विंडोज (/ सबस्टेस्टम: विन्डोज़)" चुना गया है? यदि ऐसा है, तो इसे "कंसोल (/ सबस्टेस्टम: कंसोल)"

संबंधित मुद्दे