2013-02-14 35 views
11

Đây là mã của tôi. Khi biên dịch tất cả các tập tin tôi nhận được lỗi này, tôi không chắc chắn những gì tôi đang làm sai. Xin cho biết.Lỗi trình biên dịch C++: "đặc tả kiểu trả về cho hàm tạo không hợp lệ"

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 cho danh hiệu vô dụng. – jogojapan

+3

@jagojapan Có thể mang tính xây dựng hơn để chỉ chỉnh sửa tiêu đề (như sgar91 đã làm). Câu hỏi này rất hữu ích và không nên bị bỏ phiếu, nó chỉ giúp tôi tìm ra một sai lầm ngu ngốc. – Antonio

Trả lời

16

Một constructor không có kiểu trả về:

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

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

Cũng lưu ý rằng count là địa phương để cơ thể của các nhà xây dựng, và bạn không sử dụng nó cho bất cứ điều gì.

+0

Ngay bên phải. Cảm ơn. – Sunny

3

Bạn đang viết một hàm tạo có kiểu trả về. Nhà xây dựng không có loại trả lại. Chỉ cần thay đổi định nghĩa constructor của bạn vào:

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

Constructor không thể có lợi nhuận loại.

update:

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

tới:

Molecule::Molecule(){ 
     int count; 
     count = 0; 
}//end function 
Các vấn đề liên quan