Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Syntaxfehler Cpp Include

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.