C++明明引用了类的头文件,但是不识别类类型

FD_2013 2016-10-26 10:32:25

//CameraClient.h
#ifndef _CAMERA_CLIENT_H__
#define _CAMERA_CLIENT_H__

#include <string.h>
#include <vector>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;


namespace CAMERA_VITRUAL {

typedef void(*user_callback_fun)(int addr, void* entity_in);

//Camera实体类
class CameraClient
{
public:
void set_user_callback_fun(user_callback_fun fun);
public:
CameraClient();

~CameraClient() throw ();

void close();
int init(const string& brokerURI, string& clientID);

private:
void cleanup();

private:
user_callback_fun m_userCallbackFun;
int m_x;
int m_y;
};

}

#endif



//CameraInterface.h
#ifndef _CAMERAINTERFACE_H__
#define _CAMERAINTERFACE_H__


#ifdef CAMCLIENT_EXPORTS
# define DLL_IMPORT_CAM __declspec (dllexport)
#else
# define DLL_IMPORT_CAM __declspec (dllimport)
#endif


#include "test_cfg.h"

namespace CAMERA_VITRUAL {

typedef void(*user_callback_fun)(int addr, void* entity_in);

class CamereClient;
//CamClient接口类
class DLL_IMPORT_CAM CameraInterface
{
public:

~CameraInterface();
static CameraInterface* get_instance();

public:

void set_user_callback_fun(user_callback_fun fun);
void close();
int init(const string& brokerURI, string& clientID);

protected:
CameraInterface();

private:
static CameraInterface* m_instace;
CamereClient* m_CamClient;
};
}

#ifdef __cplusplus
extern "C"
{
#endif
DLL_IMPORT_CAM void pub_entity_fun(int addr, void* entity_in); //发布
DLL_IMPORT_CAM void sub_entity_fun(int addr, void* entity_in); //订阅
#ifdef __cplusplus
}
#endif

#endif



//CameraClient.cpp

#include "CameraClient.h"

using namespace CAMERA_VITRUAL;

void CameraClient::set_user_callback_fun(user_callback_fun userCallbackFun)
{
m_userCallbackFun = userCallbackFun;
}

CameraClient::CameraClient()
{
m_x = 0;
m_y = 1;
}

CameraClient::~CameraClient() throw ()
{
cleanup();
}

void CameraClient::close()
{
cleanup();
}

int CameraClient::init(const string& brokerURI, string& clientID)
{
return 0;
}

void CameraClient::cleanup()
{

}


//CameraInterface.cpp

#include "CameraClient.h"
#include "CameraInterface.h"

using namespace CAMERA_VITRUAL;
CameraInterface* CameraInterface::m_instace = new CameraInterface();

CameraInterface* CameraInterface::get_instance()
{
return m_instace;
}

CameraInterface::CameraInterface()
{
m_CamClient = new CamereClient();
}

CameraInterface::~CameraInterface()
{
if (m_CamClient != NULL)
{
delete m_CamClient;
m_CamClient = NULL;
}
}

int CameraInterface::init(const string& brokerURI, string& clientID)
{
return m_CamClient->init(brokerURI, clientID);
}

void CameraInterface::close()
{
return m_CamClient->close();
}

void CameraInterface::set_user_callback_fun(user_callback_fun userCallbackFun)
{
return m_CamClient->set_user_callback_fun(userCallbackFun);
}


void pub_entity_fun(int addr, void* entity_in)
{

}
void sub_entity_fun(int addr, void* entity_in)
{

}
...全文
4365 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 2016-10-26
  • 打赏
  • 举报
回复
这种一般都是拼写错误,大小写问题,或者头文件相互包含导致
paschen 版主 2016-10-26
  • 打赏
  • 举报
回复
学会看智能提示,拼写上的错误是很容易找出的
赵4老师 2016-10-26
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试: 在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案: A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感 A不适合编程(理由:打字准确度偏低、粗心大意) B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念) C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证) D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!) 如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”
ipqtjmqj 2016-10-26
  • 打赏
  • 举报
回复
引用 11 楼 zhu339111520 的回复:
这东西折腾了我昨天一个晚上,今天折腾了一上午,结果就是因为拼错了。。。。还好发到论坛了,早上一大早来公司,公司各个牛人都看过了代码,都觉得没毛病,。。。。。。
不光是拼错,c++调用默认构造函数是不加括号的也是个错误。
FD_2013 2016-10-26
  • 打赏
  • 举报
回复
这东西折腾了我昨天一个晚上,今天折腾了一上午,结果就是因为拼错了。。。。还好发到论坛了,早上一大早来公司,公司各个牛人都看过了代码,都觉得没毛病,。。。。。。
ipqtjmqj 2016-10-26
  • 打赏
  • 举报
回复
引用 9 楼 zhu339111520 的回复:
[quote=引用 7 楼 ipqtjmqj 的回复:] 拼错了camera, camere
我只能说,你太牛逼了[/quote] 当局者迷,旁观者清,我以前也碰到过找bug找半天找不到, 让别人也看就找到了
FD_2013 2016-10-26
  • 打赏
  • 举报
回复
引用 7 楼 ipqtjmqj 的回复:
拼错了camera, camere
我只能说,你太牛逼了
FD_2013 2016-10-26
  • 打赏
  • 举报
回复 1
引用 7 楼 ipqtjmqj 的回复:
拼错了camera, camere
ipqtjmqj 2016-10-26
  • 打赏
  • 举报
回复
拼错了camera, camere
FD_2013 2016-10-26
  • 打赏
  • 举报
回复
引用 2 楼 ipqtjmqj 的回复:
编译器怎么报的错


一样,还是不识别

你可以稍微花个两分钟,建个工程,然后把这两个类直接复制过去,编译下看看
ipqtjmqj 2016-10-26
  • 打赏
  • 举报
回复
引用 3 楼 zhu339111520 的回复:
new的时候调用默认构造函数不用加括号
FD_2013 2016-10-26
  • 打赏
  • 举报
回复
引用 2 楼 ipqtjmqj 的回复:
编译器怎么报的错
就是不识别CameraClient这个类类型
FD_2013 2016-10-26
  • 打赏
  • 举报
回复
ipqtjmqj 2016-10-26
  • 打赏
  • 举报
回复
编译器怎么报的错
FD_2013 2016-10-26
  • 打赏
  • 举报
回复
如上,是我的实体类跟接口类的声明和定义,那么问题来了,在接口类CameraInterface.cpp文件中,包含了CameraClient.h,但是为什么不识别CameraClient这个类类型日_了_狗一般

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧