Eigenartige fehler beim kompilieren eines Projekts

  • C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Eigenartige fehler beim kompilieren eines Projekts

    Hallo!
    Hab, um klassen auszuprobieren, ein Programm geschrieben das Daten ( mehrzahl von Datum?? :P ) ausgibt. Nur leider kriege ich beim kompilieren ganz eigenartige Fehlermeldungen:

    1>Kompilieren...
    1>Datum.cpp
    1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2628: 'Datum' gefolgt von 'unsigned' unzulässig (Semikolon ';' vergessen?)
    1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2628: 'Datum' gefolgt von 'int' unzulässig (Semikolon ';' vergessen?)
    1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2347: '__w64': Kann nicht mit Typ '__w64 Datum' verwendet werden
    1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2371: 'size_t': Neudefinition; unterschiedliche Basistypen
    1> c:\users\levin\documents\visual studio 2008\projects\datum\datum\predefined c++ types (compiler internal)(19): Siehe Deklaration von 'size_t'
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(8) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(8) : error C2556: 'int Datum::init(int,int,int)': Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'void Datum::init(int,int,int)'
    1> c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.h(9): Siehe Deklaration von 'Datum::init'
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(8) : error C2371: 'Datum::init': Neudefinition; unterschiedliche Basistypen
    1> c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.h(9): Siehe Deklaration von 'Datum::init'
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(15) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(15) : error C2556: 'int Datum::init(void)': Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'void Datum::init(void)'
    1> c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.h(10): Siehe Deklaration von 'Datum::init'
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(15) : error C2371: 'Datum::init': Neudefinition; unterschiedliche Basistypen
    1> c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.h(10): Siehe Deklaration von 'Datum::init'
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(28) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(28) : error C2556: 'int Datum::print(void)': Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'void Datum::print(void)'
    1> c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.h(11): Siehe Deklaration von 'Datum::print'
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.cpp(28) : error C2371: 'Datum::print': Neudefinition; unterschiedliche Basistypen
    1> c:\users\levin\documents\visual studio 2008\projects\datum\datum\datum.h(11): Siehe Deklaration von 'Datum::print'
    1>main.cpp
    1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2628: 'Datum' gefolgt von 'unsigned' unzulässig (Semikolon ';' vergessen?)
    1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2628: 'Datum' gefolgt von 'int' unzulässig (Semikolon ';' vergessen?)
    1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2347: '__w64': Kann nicht mit Typ '__w64 Datum' verwendet werden
    1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2371: 'size_t': Neudefinition; unterschiedliche Basistypen
    1> c:\users\levin\documents\visual studio 2008\projects\datum\datum\predefined c++ types (compiler internal)(19): Siehe Deklaration von 'size_t'
    1>c:\users\levin\documents\visual studio 2008\projects\datum\datum\main.cpp(14) : error C2679: Binärer Operator '<<': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'void' akzeptiert (oder keine geeignete Konvertierung möglich)
    1> c:\program files\microsoft visual studio 9.0\vc\include\ostream(653): kann 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)' sein
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1> c:\program files\microsoft visual studio 9.0\vc\include\ostream(700): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)"
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1> c:\program files\microsoft visual studio 9.0\vc\include\ostream(738): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)"
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1> c:\program files\microsoft visual studio 9.0\vc\include\ostream(785): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)"
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1> c:\program files\microsoft visual studio 9.0\vc\include\ostream(909): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const signed char *)"
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1> c:\program files\microsoft visual studio 9.0\vc\include\ostream(916): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,signed char)"
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1> c:\program files\microsoft visual studio 9.0\vc\include\ostream(923): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const unsigned char *)"
    1> with...(usw)
    1> [
    hier mein Quellcode:

    Datum.h

    PHP-Quellcode

    1. #ifndef _DATUM_
    2. #define _DATUM_
    3. class Datum
    4. {
    5. private:
    6. short tag, monat, jahr;
    7. public:
    8. void init( int tag, int monat, int jahr);
    9. void init();
    10. void print();
    11. }
    12. #endif
    Alles anzeigen
    Datum.cpp

    PHP-Quellcode

    1. #include "Datum.h"
    2. #include <ctime>
    3. #include <iostream>
    4. using namespace std;
    5. Datum::init(int t, int m, int j)
    6. {
    7. tag = (short) t;
    8. monat = (short) m;
    9. jahr = (short) j;
    10. }
    11. Datum::init()
    12. {
    13. struct tm *zeit;
    14. time_t sec;
    15. time(&sec);
    16. zeit = localtime(&sec);
    17. tag = zeit->tm_mday;
    18. monat = zeit->tm_mon + 1;
    19. jahr = zeit->tm_year + 1900;
    20. }
    21. Datum::print()
    22. {
    23. cout << tag << "." << monat << "." << jahr << endl;
    24. }
    Alles anzeigen
    Main.cpp

    PHP-Quellcode

    1. #include "Datum.h"
    2. #include <iostream>
    3. using namespace std;
    4. int main()
    5. {
    6. Datum today, birthday, date, *pDate;
    7. today.init();
    8. cout << "Heutiges Datum: " << today.print();
    9. birthday.init(3,4,1990);
    10. cout << "Mein Geburtstag: " << birthday.print();
    11. date.init(29.6.2008);
    12. cout << "Irgendein Datum: " << date.print();
    13. *pDate = &date;
    14. cout << "Kopie von date" << pDate->print();
    15. return 0;
    16. }
    Alles anzeigen
    btw, ich verwende Microsoft Visual Studio 2008

    mfg :)
  • Hallo,

    so wie ich das sehe hast Du in der Datum.h erst mal hinter der Klassen-Deklaration ein Semikolon ( ; ) vergessen.

    In der Datum.cpp fehlt Datentyp (hier 'void') bei jedem Methoden-Kopf!!

    In der main.cpp ist der dritte Methodenaufruf nicht korrekt, Übergabeparameter mit Komma trennen.

    Gruß
  • danke :)
    musste noch ein paar andere sachen ausbessern, wie zb in der main.cpp:

    PHP-Quellcode

    1. cout << "Heutiges Datum: ";
    2. today.print();


    anstatt:

    PHP-Quellcode

    1. cout << "Heutiges Datum: " << today.print();


    aber jetzt gehts!!! :)

    mfg

    //kann geclosed werden!