错误:'xxx'没有命名类型

时间:2011-11-30 13:45:19

标签: c++

我有一个奇怪的问题,我不明白。我正在将一些C代码复制到C ++类并且无法通过此错误“没有命名类型”...我希望我复制了足够的代码以使其有意义,原始程序是~1000行

错误是..错误:'HTTPContext'没有命名类型

错误行是“ HTTPContext MainWindow :: * find_rtp_session_with_url(const char * url,const char * session_id)

className.h:

class MainWindow : public QMainWindow
{
    Q_OBJECT

 public:

     typedef struct HTTPContext{
         int fd;
     }HTTPContext;

     HTTPContext *find_rtp_session_with_url(const char *url,
                                              const char *session_id);
};

className.cpp

#include "className.h"

HTTPContext MainWindow::*find_rtp_session_with_url(const char *url,
                                          const char *session_id)
{
     HTTPContext *rtp_c;  

}

2 个答案:

答案 0 :(得分:5)

HTTPContext在类范围内声明,因此要在全局范围的函数定义中使用,您需要明确指定它:

MainWindow::HTTPContext *MainWindow::find_rtp_session_with_url...

答案 1 :(得分:2)

你需要说

MainWindow::HTTPContext* MainWindow::find_rtp_session_with_url( ...

因为它是一个内部阶级。此外,您不必在那里使用typedef

struct HTTPContext {
    int fd;
};

足以在C ++中命名一个类型。