Semikolon vor using namespace System - Normal ?



  • Ich habe mit Visual C++.NET 2003 ein einfaches Programm erstellt mit eingebundenem Header in der cpp-Datei :

    #include "stdafx.h"
    #include "CreditCardAccount.h"
    #using <mscorlib.dll>
    
    using namespace System;
    

    Leider wird so nicht kompiliert - es kommt folgende Fehlermeldung :

    CreditCardAccount.cpp(5) : error C2143: Syntaxfehler: Es fehlt ';' vor 'using'

    Wenn ich vor das using namespace System ein Semikolon reinmache dann kann ich kompilieren :

    #include "stdafx.h"
    #include "CreditCardAccount.h"
    #using <mscorlib.dll>
    [b];[/b]
    using namespace System;
    

    Wieso muss ich da ein Semikolon reinschreiben ? Ist das eine C++.NET - Eigenheit ?

    Hier der gesamte Code :

    Header :

    class CreditCardAccount
    {
    public :
    	bool makePurchase(double amount);
    	void MakeRepayment(double amount);
    	void PrintStatement();
    	CreditCardAccount(long number,double limit);
    
    private :
    	long accountNumber;
    	double currentBalance;
    	double creditLimit;
    }
    

    Funktionen :

    #include "stdafx.h"
    #include "CreditCardAccount.h"
    #using <mscorlib.dll>
    
    using namespace System;
    
    CreditCardAccount::CreditCardAccount(long number,double limit)
    {
    	accountNumber = number;
    	creditLimit = limit;
    	currentBalance =0.0;
    }
    
    bool CreditCardAccount::makePurchase(double amount)
    {
    	if (currentBalance + amount > creditLimit)
    	{
    		return false;
    	}
    	else
    	{
    		currentBalance+=amount;
    		return true;
    	}
    }
    
    void CreditCardAccount::MakeRepayment(double amount)
    {
    	currentBalance -=amount;
    }
    
    void CreditCardAccount::PrintStatement()
    {
    	Console::Write("Kontonummer: ");
    	Console::WriteLine(accountNumber);
    
    	Console::Write("Aktueller Kontostand: ");
    	Console::WriteLine(currentBalance);
    }
    

    Hauptprogramm :

    #include "CreditCardAccount.h"
    
    #using <mscorlib.dll>
    
    using namespace System;
    
    int _tmain()
    {
    	CreditCardAccount * myAccount;
    	myAccount = new CreditCardAccount(12345,2500);
    	myAccount->makePurchase(1000);
    	myAccount->MakeRepayment(700);
    	myAccount->PrintStatement();
    	delete myAccount;
    
    }
    




  • es fehlt ein semikolon am ende der deklaration von CreditCardAccount. deshalb will der compiler es spätestens vor dem using haben.



  • @camper : danke schön - jetzt funktionierts ! 🙂


Log in to reply