我有一个奇怪的问题,我不明白。我正在将一些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;
}
答案 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 ++中命名一个类型。