C++ 继承时未找到类名
我从类继承时遇到问题,在internet上查找错误被称为循环包含,但我不知道如何在代码上执行此操作 以下是错误:C++ 继承时未找到类名,c++,opencv,inheritance,C++,Opencv,Inheritance,我从类继承时遇到问题,在internet上查找错误被称为循环包含,但我不知道如何在代码上执行此操作 以下是错误: ./src/Camera.hpp:6:40: error: expected class-name before ‘{’ token class Camera : public cv::VideoCapture { 我从中继承的类是OpenCV的一部分。以下是守则的相关部分: main.cpp: #include <opencv2/core.hpp> #include
./src/Camera.hpp:6:40: error: expected class-name before ‘{’ token
class Camera : public cv::VideoCapture {
我从中继承的类是OpenCV的一部分。以下是守则的相关部分:
main.cpp:
#include <opencv2/core.hpp>
#include "Camera.hpp"
int main(int argc, char** argv){
Camera camera = Camera(/*Some parameters*/);
return 0;
}
#包括
#包括“Camera.hpp”
int main(int argc,字符**argv){
摄像头=摄像头(/*某些参数*/);
返回0;
}
照相机.hpp
#ifndef CAMERA_H
#define CAMERA_H
#include <opencv2/core.hpp>
class Camera : public cv::VideoCapture {
public:
Camera(/*Some parameters*/);
};
#endif
\ifndef摄像机
#定义摄像机
#包括
类摄像机:公共简历::视频捕获{
公众:
摄像机(/*某些参数*/);
};
#恩迪夫
main.cpp中还包含一些其他文件,但我确保(为了测试)它们都没有使用Camera.hpp。我做错了什么
谢谢如果它不知道
VideoCapture
是一个类,可能你没有包含正确的头文件
建议
#如果opencv<3.0,则包含“opencv2/opencv.hpp”
,而不是发布“代码的相关部分”,如果opencv<3.0,则发布.includehighgui.hpp
,如果opencv>=3.0,则包含videoio.hpp
,或者简单地使用include allopencv.hpp
@Miki,它是3.0,但highui工作正常。谢谢,在清理代码时错过了。虽然VideoCapture是coreYes的一部分,但在OpenCV 3.0中,highgui.hpp包含了videoio.hpp,所以它可以工作。我刚才指的是宣布视频捕获的地方。很高兴它有帮助。或者您可以只包含highgui.hpp
(或者videoio.hpp
用于OpenCV 3.0)。