2013-02-14 12 views
11

Hier ist mein Code. Beim Kompilieren aller Dateien bekomme ich diesen Fehler, ich bin mir nicht sicher, was ich falsch mache. Bitte beraten.C++ - Compilerfehler: "Rückgabetypspezifikation für Konstruktor ungültig"

Molecule.cpp:7:34: error: return type specification for constructor invalid

//Sunny Pathak 
//Molecule.cpp  
#include <iostream> 
#include "Molecule.h"  
using namespace std; 

inline void Molecule::Molecule(){ 
     int count; 
     count = 0; 
}//end function 

bool Molecule::read(){ 
    cout << "Enter structure: %c\n" << structure << endl; 
    cout << "Enter full name: %c\n" << name << endl; 
    cout << "Enter weight : %f\n" << weight << endl; 
}//end function 


void Molecule::display() const{ 
    cout << structure << ' ' << name << ' ' << weight << ' ' << endl; 
}//end function 
+1

-1 für nutzlos Titel. – jogojapan

+3

@jagojapan Könnte konstruktiver sein, nur den Titel zu bearbeiten (wie sgar91 tat). Diese Frage ist nützlich und so zu sein, sollte nicht nach unten verschoben werden, es hat mir nur geholfen, einen dummen Fehler zu finden. – Antonio

Antwort

16

Ein Konstruktor hat keine Rückgabetyp:

class Molecule 
{ 
public: 
    Molecule(); // constructor. No return type. 
    bool read(); 
    void display() const; 
}; 

Molecule::Molecule(){ 
     int count; 
     count = 0; 
}//end constructor 

Beachten Sie auch, dass count an den Körper des Konstruktors lokal ist, und Sie verwenden es für nichts.

+0

Rechts rechts. Vielen Dank. – Sunny

3

Sie schreiben einen Konstruktor mit einem Rückgabetyp. Konstruktoren haben keinen Rückgabetyp. Ändern Sie einfach Ihre Konstruktordefinition in:

/* void */ Molecule::Molecule() 
// ^^^^ Remove this 
{ 
    int count; 
    count = 0; 
} 
2

Constructor nicht Rückgabetyp haben kann.

Update:

inline void Molecule::Molecule(){ 
     ^^^ 
     int count; 
     count = 0; 
}//end function 

zu:

Molecule::Molecule(){ 
     int count; 
     count = 0; 
}//end function