Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Guten Abend,

ich steh hier gerade ein wenig auf dem Schlauch bei einer Testklasse welche Auto heißt.

Das Header file sieht wie folgt aus:


#include "stdafx.h"

#include <string>

#include <iostream>


using namespace std;


enum company{mercedes,bmw,audi,vw};


class Auto

{

public:

	string name;

	company hersteller;


private:

	bool engine_running;

	bool driving;


public:

	Auto(company Hersteller, string Name);

	~Auto();

	void Start_Motor();

	void Fahre();

	void Stop();

	void Stop_Motor();

	bool isMotor_started();

	bool isDriving();

};

Das Source file sieht wie folgt aus :

#include "Auto.h"


void Auto::Fahre(){

	if (isMotor_started() && !isDriving())

	{

		driving = true;

		cout << "Das Auto setzt sich in Bewegung!" << endl;

	}

	else

	{

		cout << "Entweder ist der Motor nicht gestartet oder das Auto fährt bereits!" << endl;

	}

	}

void Auto::Start_Motor(){

if (!engine_running)

	{

	engine_running = true;

	cout << "Der Motor wurde erfolgreich gestartet!" << endl;

	} 

else

	{

	cout << "Der Motor ist bereits gestartet!" << endl;

	}

}

void Auto::Stop(){

	if (isDriving())

	{

		driving = false;

		cout << "Das Auto hat gestoppt!" << endl;

	}

	else

	{

		cout << "Das Auto fährt nicht!" << endl;

	}

	}

void Auto::Stop_Motor(){

if (engine_running)

	{

	engine_running = false;

	cout << "Der Motor wurde erfolgreich gestoppt!" << endl;

	} 

else

	{

	cout << "Der Motor läuft nicht!" << endl;

	}

}

bool Auto::isDriving(){

	return driving;

}

bool Auto::isMotor_started(){

	return engine_running;

}

Auto::Auto(company Hersteller,string Name){

	hersteller = Hersteller;

	name = Name;

}

Der Fehler welcher mir von VS 2010 ausgegeben wird:

Warnung 1 warning C4627: "#include "Auto.h"": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.

Fehler 2 error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "StdAfx.h"" einzufügen?

Ich weiß es wird wieder irgend ein ganz einfacher Syntax Fehler sein, allerdings finde ich diesen nicht. Steh grad wirklich auf der Leitung. Gebt mir nen stups ;).

lg

Gateway

Geschrieben

Du bist mein Held :).

Jedoch verstehe ich es nicht denn wenn ich das include auf das Header File mache kopiert der Präprozessor doch den Inhalt des Headers und erstetzt in mit der entsprechenden include Zeile sprich er kopiert auch den using Befehl in die cpp Datei oder hab ich da was Falsch verstanden?

lg

Gateway

Geschrieben

Die Includedirektive für den vorkompilierten Header (normalerweise stdafx.h) gehört in die .cpp-Datei, und sie muss die erste Includedirektive in der Datei sein.

Alle Includedirektiven, die davor stehen, ignoriert der Compiler.

Und Hexagon hat Recht: using-Direktiven gehören nicht in Headerdateien. Ansonsten kann sich das Verhalten einer .cpp-Datei komplett ändern, wenn man einen zusätzlichen Header einbindet, weil plötzlich ganz andere Funktionen in die Überladungsauflösung einbezogen werden.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...