Problem beim .h einbinden

dev3on

Grünschnabel
Hallo.

Ich versuche mich gerade in c++.

Dabei habe ich jetzt folgendes Problem.

Ich habe eine .cpp mit CODE::BLOCK erstellt. (mit class u.s.w.) und dies funktioniert auch sehr gut..

Nun wollte ich, um es besser zu designen ein .h File erstellen, wo ich erstmal die class auslagern kann.

hier der code..

.cpp
=============
#include <iostream>
#include <string>
#include "headerauto1.h"

using namespace std;

void funct();

Auto::Auto(string n) {
name = n;
geschwindigkeit = 0;
preis = 2000;
alter = 10;
cout << " Das Auto --> " << name << " <-- wurde erstellt -->> " << "Konstrucktor ende" << endl;
}

Auto::~Auto() {
cout << " Das Auto --> " << name << " <-- wurde geloescht -->> " << "Destrucktor ende" << endl;
}

void Auto::gasGeben() {
geschwindigkeit++;
}

double Auto::getPreis() {
return preis;
}

int Auto::getGeschwindigkeit() {
return geschwindigkeit;
}

string Auto::getName() {
return name;
}

int main() {
Auto porsche ("Porsche");
porsche.gasGeben();
funct();
cout << "Der Porsche erreicht " << porsche.getGeschwindigkeit() << " Sachen" << endl;
cout << "Der Prosche kostet " << porsche.getPreis() << " Euro" << endl;


}

void funct() {
Auto fiat ("Fiat"); }


====================

nun das .h File.
========

class Auto {

int geschwindigkeit;
int alter;
string getName();
string name;
double preis;

public:
void gasGeben();
int getGeschwindigkeit();
double getPreis();
Auto(string n);
~Auto();
};

=============

aber aus irgendeinem Grund bringt er mir Fehrler.
Wäre nett wenn mir jemand ne Tip dazu geben könnte, was ich falsch mache.

Danke !
 
Hi,
was für einen fehler gibt er dir denn aus?

Schreib deinen code doch bitte in
solche
Code:
...
Codeblöcke.

Benny
 
er bring zu viele fehler.

mein Problem ist haupsächlich das , das wenn ich den code im ganzen lasse, läuft es ohne Probleme und er bringt keine Fehler. Das Programm läuft auch.

Sobald ich eine .h Datei erstelle und in der die "class Auto" auslagere, bringt er eine viele Fehler.

Es dürft doch eigendlich kein Problem sein, aus einen funktionierenden Code eine class in eine .h Datei auszulagen und das der code trotzdem noch funktioniert.

Oder verstehe ich da etwas falsch und mann müsste nicht den Code austauschen sonder mich ? *lach*
 
Setz deine Klasse in der h Datei mal in den
folgenden Kontext ein:
Code:
#ifndef AUTO_H
#define AUTO_H

class...


#endif // AUTO_H
 
Danke, hat aber leider nicht zum Erfolg geführt.

Falls du mal kurz Zeit hast, kannst es ja mal bei dir testen.

setzte über void funct() die class Auto..das geht..

kann es an dem Tool liegen ?

.cpp & .h liegen im selben Verzeichniss bei mir..

Ist zum Verzweifeln ;o)
 
Also ich kriege das zum laufen wenn ich in die .h Datei

Code:
#include <string>

using namespace std;


einfüge.
 
Ja, natürlich.

Das ist sicherlich auch das was der Compiler dir die ganze Zeit gesagt hat: das er die Klasse string nicht kennt.

In jeder Datei in der du die std::string Klasse benutzt, solltest du auch den string Header einbinden.

In einer Header Datei sollte man allerdings keine "using namespace" Anweisung verwenden, da dadurch der globale Namensraum "verschmutzt" wird.

Greife einfach auf die Elemente des std Namensraumes so zu:
C++:
std::string xyz;
Gruß
 
Vielen Dank, für die Antworten.

Habe es versucht wie Ihr mir geraten habt.
Problem besteht leider immer noch.

Arbeite hier mit dem Tool CODE::BLOCK..
@Nabbi --> mit welchem Tool arbeitest du ?

hier mal die Files mit und ohne Header :

hier die cpp ohne Header Datei

ohne Header


und hier die cpp mit header Datei

mit Header

wäre echt nett wenn, ihr mal schaut. Verstehe nicht wo das Problem liegt.
 
Zurück