Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 继承时未找到类名_C++_Opencv_Inheritance - Fatal编程技术网

C++ 继承时未找到类名

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

我从类继承时遇到问题,在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 "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,则发布.include
highgui.hpp
,如果opencv>=3.0,则包含
videoio.hpp
,或者简单地使用include all
opencv.hpp
@Miki,它是3.0,但highui工作正常。谢谢,在清理代码时错过了。虽然VideoCapture是coreYes的一部分,但在OpenCV 3.0中,highgui.hpp包含了videoio.hpp,所以它可以工作。我刚才指的是宣布视频捕获的地方。很高兴它有帮助。或者您可以只包含
highgui.hpp
(或者
videoio.hpp
用于OpenCV 3.0)。