Swola4
10.12.2008, 22:24
Hi, ich habe mich wieder mal an C++ probiert und komme nicht weiter.
Problem:
Ich will gerne meine Klasse Person in eine headerdatei "person.h" auslagern. Nun bekomme ich aber nen Fehler (nähres dazu gleich...)
Hier mal zunächst die 3 datein
main.cpp
#include <cstdlib>
#include <iostream>
#include <string>
#include "person.h"
using namespace std;
int main(int argc, char *argv[])
{
Person hans("Hans","Schmidt",17);
system("PAUSE");
return EXIT_SUCCESS;
};
person.cpp
#include "person.h"
using namespace std;
Person::Person() :
//init
name ( "" ),
vorname ( "" ),
alter ( 0 )
{}
Person::Person(string v, string n, int a) :
//init
name ( n ),
vorname ( v ),
alter ( a )
{}
string Person::getName()
{
return vorname + " " + name;
}
person.h
#include <string>
using namespace std;
class Person
{
//Eigenschaften
string name;
string vorname;
int alter;
public:
//Methoden
Person();
Person(string v, string n, int a)
string getName();
};
Fehlermeldung:
4 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp In file included from main.cpp
16 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ person.h expected `;' before "string"
6 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp expected unqualified-id before "using"
6 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp expected `,' or `;' before "using"
E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp In function `int main(int, char**)':
10 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp no matching function for call to `Person::Person(const char[5], const char[7], int)'
note E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ person.h:5 candidates are: Person::Person(const Person&)
note E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ person.h:5 Person::Person()
E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ Makefile.win [Build Error] [main.o] Error 1
kann wer helfen ??? und mir den Fehler auch erklären ?
Problem:
Ich will gerne meine Klasse Person in eine headerdatei "person.h" auslagern. Nun bekomme ich aber nen Fehler (nähres dazu gleich...)
Hier mal zunächst die 3 datein
main.cpp
#include <cstdlib>
#include <iostream>
#include <string>
#include "person.h"
using namespace std;
int main(int argc, char *argv[])
{
Person hans("Hans","Schmidt",17);
system("PAUSE");
return EXIT_SUCCESS;
};
person.cpp
#include "person.h"
using namespace std;
Person::Person() :
//init
name ( "" ),
vorname ( "" ),
alter ( 0 )
{}
Person::Person(string v, string n, int a) :
//init
name ( n ),
vorname ( v ),
alter ( a )
{}
string Person::getName()
{
return vorname + " " + name;
}
person.h
#include <string>
using namespace std;
class Person
{
//Eigenschaften
string name;
string vorname;
int alter;
public:
//Methoden
Person();
Person(string v, string n, int a)
string getName();
};
Fehlermeldung:
4 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp In file included from main.cpp
16 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ person.h expected `;' before "string"
6 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp expected unqualified-id before "using"
6 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp expected `,' or `;' before "using"
E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp In function `int main(int, char**)':
10 E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ main.cpp no matching function for call to `Person::Person(const char[5], const char[7], int)'
note E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ person.h:5 candidates are: Person::Person(const Person&)
note E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ person.h:5 Person::Person()
E:\Programmfiles\DevCpp\V2B_Projekte\Header_datei\ Makefile.win [Build Error] [main.o] Error 1
kann wer helfen ??? und mir den Fehler auch erklären ?