2行C ++中的多个错误

时间:2013-12-13 05:45:44

标签: c++

我在第27行和第28行代码中遇到5个错误:

Request * ServerFactory::make_request(int type) {
    if (type == 1)
        return new RequestA(); // line number 27
    else if (type == 2)            // line number 28
        return new RequestB();
    else if (type == 3)
        return new MRRequest();

    return NULL;
}

并且错误是:

1.error: expected type-specifier before ‘RequestA’.

2.error: cannot convert ‘int*’ to ‘Request*’ in return.

3.error: expected ‘;’ before ‘RequestA’.

4.error: ‘RequestA’ was not declared in this scope.

5.error: ‘else’ without a previous ‘if’

Request是RequestA,MRRequest和RequestB的父类。

我包括的这些文件:

1.#include "../../../include/request/Request.h"

2.#include "../../include/request/RequestA.h"

3.#include "../../include/request/RequestB.h" 

还有更多

RequestA.h

#ifndef REQUESTA_H_
#define REQUESTA_H_

#include "../../../include/request/Request.h"
#include "../../../../include/common/GsmMeasurements.h"

class RequestA : public Request
{
    public:
        enum { TYPE = 1 , MAX_DATA_LEN = 10 };

        RequestA( );
        virtual ~RequestA( );

        virtual int get_type( ) const;
        virtual void * get_data( ) ;
        virtual const void * get_data( ) const ;

        virtual int get_length( ) const;
        virtual void set_length( int length );

    private:

        char data_[MAX_DATA_LEN + 1];
        int data_length_;
};


#endif /* REQUESTA_H_ */

Request.h

#ifndef REQUEST_H_
#define REQUEST_H_

#include "../../../include/common/GsmMeasurements.h"

class Request
{
    public:
        virtual ~Request( ){}

        virtual int get_type( ) const = 0;
        virtual void * get_data( ) = 0;
        virtual const void * get_data( ) const = 0;

        virtual int get_length ( ) const = 0;
        virtual void set_length( int length ) = 0;

};

#endif /* REQUEST_H_ */

1 个答案:

答案 0 :(得分:0)

检查RequestA.h,RequestB.h和Request.h中的标题保护

这是我常犯的错误。