2017-03-20 5 views
0

Ich bin ein Anfänger in der C++ Welt und ich würde gerne wissen, warum kompiliert die Klasse nicht? Klasse kompiliert nicht! C++

// In the header file: "MyClass.hpp" 

class MyClass 
{ 
int m_data1; 

MyClass(); 

private: 
double m_data2; 
} 

// In the source file: "MyClass.cpp" 

#include "MyClass.hpp" 

MyClass::MyClass() 
{ 
} 

Compiler error: C2533 'MyClass::{ctor}': constructors not allowed a return type

Danke

+1

Wir möchten auch wissen, so, wenn Sie uns einen Compiler-Fehler geben könnte, könnten Sie uns helfen, Ihnen zu helfen. – ChemiCalChems

+0

Sie geben nicht den Bereich von 'm_data1' und den Konstruktor an. Der Konstruktor soll öffentlich sein, es sei denn, die Klasse hat nur statische Methoden. – Havenard

+0

@Havenard für eine Klasse, deren Standardzugriffsebene privat ist, ist der private Spezifizierer nach dem Konstruktor überflüssig. Er wird seine Klasse jedoch nicht ohne eine statische Factory-Funktion instanziieren können. –

Antwort

2

Die schließende geschweifte Klammer für Class ist am Ende ein Semikolon fehlt. Alle schließenden geschweiften Klammern einer Klasse erfordern direkt danach ein Semikolon. Außerdem ist der Konstruktor für Class privat, sodass Sie ihn nicht außerhalb der Klasse aufrufen können. Hier

ist der Code festgelegt:

class MyClass 
{ 
    public: // Made your constructor public 
     MyClass(); 

    private: 
     int m_data1; 
     double m_data2; 
}; // added a closing semicolon 
+0

Das ist es !!! Ich habe diesen Reflex nicht bekommen, um diesen dummen Fehler zu überprüfen. Vielen Dank!! – Zizou23

+0

@ Zizou23 Bitte wählen Sie das Häkchen neben meiner Antwort aus. Es sollte grün werden, wenn Sie dies tun. –

+0

Es scheint, dass ich noch vier Minuten warten muss, um Ihre Antwort zu akzeptieren. :) – Zizou23

Verwandte Themen