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; }
-
ohne es so je gemacht zu haben:
hier beispiele aus der msdn
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcwlkSysimportAttributeTutorial.asp
-
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 !