2017-11-25 20 views
0

Ich stehe vor einem wirklich dumm und ärgerlich Problem, ich folgte ein Video auf, wie man ein Roguelike, ich beschloss zu stoppen nach dem Wissen, wie ein Level auf den Bildschirm und tatsächlich gedruckt wird Ich fing an zu codieren, dann bekam ich mehrere Fehler an perfektem Code, ich tadelte die Konstruktoren, also entschied ich mich, ein neues Projekt im Visual Studio zu machen, um den doofsten Fall, eine Hauptfunktion, eine Klasse mit einem Konstruktor, der nichts tut, und ich Ich habe die ganze Arbeit, die Klasse und den Konstruktor zum Visual Studio zu machen, verlassen. Ich habe immer noch das verdammte Problem, hier ist der Fehler in dieser vereinfachten Version des Codes, ich würde den Rogue-ähnlichen Code zeigen, aber ich müsste ins Englische übersetzen Fehler selbst, und die meisten von ihnen haben nichts mit dem tatsächlichen Fehler zu tun, weil sie sich meistens darüber beschweren, dass sie fehlen; an Orten, wo es entweder kein geben sollte; oder da ist schon eins.C++ und Visual Studio 2017: Fehler C4430

here's the code 
    main.cpp: 
    #include "stdafx.h" 

    int main() 
    { 
    return 0; 
    } 
    test.h 
    #include "stdafx.h" 

    class test 
    { 
    public: 
    test(); 
    }; 
    test.cpp 
    #include "test.h" 
    #include "stdafx.h" 

    test::test(){ 
    } 

noch mit diesem einfachen automatisch generierten Code, Visual Studio immer noch Beschwerden und gibt mir diese Fehlermeldungen

C4430 fehlen Typspezifizierer - int angenommen. Hinweis: C++ nicht unterstützt default-int

C2653 'test': ist keine Klasse oder Namespace-Name

'test': Funktion sollte einen Wert zurückgeben; 'void' Rückgabetyp angenommen

was soll ich tun?

+2

'#include "test.h" #include "stdafx.h"' die Reihenfolge umkehren? –

+0

Der Compiler geht davon aus, dass alles bis einschließlich "#include" stdafx.h "' bereits vorkompiliert ist und es daher nicht erneut kompiliert wird. Das müssen Sie bei der Bestellung der '# Include's berücksichtigen. –

Antwort

0

Sie müssen den Rückgabetyp explizit definieren und einen Wert dieses Typs zurückgeben, wenn Ihre Funktion nicht void zurückgibt. Andernfalls werden Sie diesen Fehler erhalten.

class A 
{ 
    int int_func(); 
    void void_func(); 
}; 

int A::int_func() 
{ 
    return 0; 
} 
void A::void_func() 
{ 
    // No return; 
}