C++ : Test liefert Fehler "Ergebnistyp für Konstruktoren nicht zulässig"



  • Ich nutz Visual Studio und habe ein Windows32 Konsolen Projekt gestartet ( ich hoffe dies ist der simpelste Projekttyp, den es gibt...)
    und habe dort eine Header "test.h" Datei:

    #pragma once
    class Test{
    
    public:
    	Test(int bal);
    }
    

    Und die Cpp

    #include "stdafx.h"
    #include "test.h"
    
    Test::Test(int bal){
    // do nothing
    }
    

    Nun wirft er mir aber die vollgende Meldung an den Kopf:

    Fehler	1	error C2533: 'Test::{ctor}': Ergebnistyp für Konstruktoren nicht zulässig
    

    Die Suche ergab keine Lösung, aber ich verstehe das Problem nicht? Ich hab doch einen Konstruktor und keinen Returnwert, warum denkt er, dass ich irgendwo was returne? Es ist doch nirgends definiert worden, dass irgendwas zurück gegeben wird.



  • Du hast das Semikolon am Ende der Klassen-Deklaration vergessen :p



  • ich glaub, den fehler macht jeder (mindestens) einmal: Semikolon nach der Klassendefinition fehlt

    edit: mist zu spät



  • *koppaufntischhau*

    AAAAAAAARGH!

    Wer denkt sich so was auch aus, kenne keine andere Sprache,die dort n Semikolon will.

    Das wird nochmal mein Tod sein...

    Danke 🙂



  • ne, das semikolon da ist logisch, kannst nämlich auch sowas machen:

    class Test
    {
      public:
      Test() { };
      void DoSth() { cout << "hallo" << endl; };
    } Obj;
    
    int main()
    {
      Obj.DoSth();
      return 0;
    }
    

    aber ich kenne keinen Grund, das so anzuwenden, höchstens für kleine funktoren oder so


Anmelden zum Antworten