2010-07-07 44 views
41

Tôi nhầm lẫn khi nghĩ đến cấu trúc lớp C++.loại mới không thể xác định loại trả về - C++

Tôi có một .h gọi FxMathFunctions.h và một cpp gọi FxMathFunctions.cpp

các .h bắt đầu như:

class FxMathFunctions 
{ 
    public: 
     FxMathFunctions(); 
     ~FxMathFunctions(); 

và trong cpp

tôi có:

#include "FxBasicTypes.h" 
#include "FxMathFunctions.h" 

FxMathFunctions::FxMathFunctions() {} 

FxMathFunctions::~FxMathFunctions() {} 

Tôi nhận được lỗi như:

error: new types may not be defined in a return type 
error: return type specification for constructor invalid 

Điều này phải liên quan đến định nghĩa ở đâu đó, nhưng tôi không thể biết được điều này có thể xảy ra ở đâu.

+3

Tôi giả định rằng 'FxMathFunctions' được đóng đúng cách trong mã của bạn, tức là nó có dấu ngoặc nhọn '}' theo sau là dấu chấm phẩy. Nếu không, tôi sẽ bắt đầu ở đó. – rcollyer

+0

có thể trùng lặp của [Ctor không được phép trả về loại.] (Http://stackoverflow.com/questions/2579657/ctor-not-allowed-return-type) –

+1

Ngoài dấu chấm phẩy kết thúc, tệp '.h' phải bắt đầu với một bảo vệ bao gồm, không phải với một tuyên bố lớp học. – Philipp

Trả lời

112

Tệp .h kết thúc của bạn là gì? Tôi đoán rằng kết thúc của lớp học của bạn defnition không có một ";". Lớp này được hiểu là kiểu trả về của hàm đầu tiên trong tệp cpp của bạn.

+2

bạn đã nhanh hơn ;-) – jdehaan

26

Mất ; vào cuối khai báo lớp học có thể dẫn đến lỗi như vậy.

13

Khai báo lớp kết thúc bằng dấu chấm phẩy.

+4

Dấu chấm phẩy, không phải là dấu chấm phẩy. :) – GManNickG

Các vấn đề liên quan