2010-07-07 14 views
41

Estoy confundido, creo que en la estructura de clase C++.nuevos tipos no pueden definir un tipo de devolución - C++

Tengo una llamada .h FxMathFunctions.h y una .cpp denominado FxMathFunctions.cpp

el .h comienza así:

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

y en el .cpp

que tengo:

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

FxMathFunctions::FxMathFunctions() {} 

FxMathFunctions::~FxMathFunctions() {} 

estoy recibiendo errores como:

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

Esto debe ser algo relacionado con la definición en algún lugar, pero simplemente no veo dónde podría ocurrir esto.

+3

Supongo que 'FxMathFunctions' está correctamente cerrado en su código, es decir, tiene un corchete de cierre '}' seguido de un punto y coma. Si no, comenzaría allí. – rcollyer

+0

posible duplicado de [Ctor no permitido tipo de devolución.] (Http://stackoverflow.com/questions/2579657/ctor-not-allowed-return-type) –

+1

Además del punto y coma final, el archivo '.h' debe comenzar con un protector de inclusión, no con una declaración de clase. – Philipp

Respuesta

112

¿Qué hace su archivo .h final con? Supongo que el final de la defnición de tu clase no tiene un ";" La clase se interpreta como el tipo de devolución de la primera función en su archivo cpp.

+2

fuiste más rápido ;-) – jdehaan

26

Perder ; al final de la declaración de clase podría dar lugar a dicho error.

13

La declaración de clase finaliza con un punto y coma.

+4

Punto y coma, no punto y coma. :) – GManNickG

Cuestiones relacionadas