Microsoft Visual Express 2008 Problem!



  • Hallo erstmal,

    Ich bin heute von Dev C++ auf Microsoft Visual C++ Express 2008 umgestiegen.
    Da ich Dev C++ gewöhnt bin hab ich einfach mal so drauflos Programmiert.
    Jetzt hab ich ein Programm geschrieben dass wenn ich es unter Dev C++ ausführe läuft und wenn ich es in Visual compiliere Fehlermeldungen ausspuckt.
    Könnt ihr mir vielleicht sagen woran es liegen könnte?

    #include <iostream>
    #include <string>
    #include <cstdlib>
    
    class Person
    {
    
     //Eigenschaften
    public:
        string name;
        string vorname;
        void ausgeben();
    
    };
    
        //Methoden
    
        void ausgeben()
        {
         cout "Ich heise " << vorname << " " << name << endl;  
        }
    
    using namespace std;
    int main ()
    {
    
    Person ich;
    
    ich.name = "Irgendwas";
    ich.vorname = "Happysheep";
    ich.ausgeben();
    
    return 0;
    }
    

    So sollte es eigentlich funktionieren.
    Kann mir irgendwer unterschiede zwischen den beiden Compilern erklären, die sich auf den Quelltext auswirken???



  • Das Programm kompiliert garantiert unter keinem C++-Compiler!

    Die Signatur von ausgabe() ist komplett falsch, und cout, endl und string liegen allesamt im Namespace std::.

    Mein Tipp: Arbeite ein gutes Buch oder ein gutes Tutorial durch.



  • Ja das ist mir jetzt gerade auch aufgefallen

    #include <iostream>
    #include <string>
    #include <cstdlib>
    
    class Person
    {
    
     //Eigenschaften
    public:
        string name;
        string vorname;
        void ausgeben();
    
    };
    
        //Methoden
    
        void ausgeben()
        {
         cout "Ich heise " << vorname << " " << name << endl;   
        }
    
    using namespace std;
    int main ()
    {
    
    Person ich;
    
    ich.name = "Irgendwas";
    ich.vorname = "Happysheep";
    ich.ausgeben();
    
    return 0;
    }
    

    Ja sorry ich hab es jetzt mal verbessert.
    Keine Ahung was ich da vorhin gemacht hab 😃



  • #include <iostream>
    #include <string>
    #include <cstdlib>
    
    using namespace std;
    
    class Person
    {
     //Eigenschaften
     public:
      string name;
      string vorname;
    
      //Methoden
      void ausgeben()
      {
       cout "Ich heisse " << vorname << " " << name << endl;   
      }
    };     
    
    int main()
    {
     Person ich;
    
     ich.name = "Irgendwas";
     ich.vorname = "Happysheep";
     ich.ausgeben();
    
     return 0;
    }
    


  • Bei mir will VC++ Express(...) immer ganz am Anfang noch stdafx.h. Also:

    #include "stdafx.h"
    //Hier drunter der restliche Code
    

    Vielleicht liegt's daran?



  • Ok hat sich erledigt



  • Hunterson schrieb:

    Bei mir will VC++ Express(...) immer ganz am Anfang noch stdafx.h.

    Aber nur wenn du es einstellt, oder nicht abstellst.

    Ich empfehle grundsätzlich für Programmieranfänger:
    a) Win32 Konsolen Anwendung auswählen
    b) Auf den 2ten Tab "Leeres Projekt" auswählen (oder den dortigen Haken bei vorkompilierte Header [oder wie precompiled Header im deutschen heißt] zu entfernen).
    [Man kann es auch nachträglich in den Projekteinstellungen ändern, dort würde ich eh unter C/C++ den Warnungslevel auf 4 setzen]

    stdafx.h ist kein C++ Standard.


Anmelden zum Antworten