Src/MediaSession/MediaSubSession/MediaSubSessionEx.h:45:15: error: 'virtual void Dahua::Intervideo905::CJTBBMediaSubSession::onCaptureFrame(int, const Dahua::Intervideo905::CIVFrame&)' is protected
时间: 2023-09-29 18:11:07 浏览: 100
这个错误是因为在代码中的第45行,'onCaptureFrame'函数被声明为受保护的(protected),而无法访问。protected成员只能在派生类中访问,而不能在外部访问。
要解决这个错误,你可以考虑以下几种方法:
1. 将'virtual void Dahua::Intervideo905::CJTBBMediaSubSession::onCaptureFrame(int, const Dahua::Intervideo905::CIVFrame&)'函数的访问修饰符改为public。
这样就可以在外部访问该函数了。
2. 在派生类中使用该函数。
如果你正在尝试在派生类中使用该函数,那么请确保你的派生类正确继承了基类,并且在派生类中可以访问到该函数。
3. 在派生类中重新实现该函数。
如果你需要在派生类中重新定义该函数的行为,你可以在派生类中重新实现一个同名的函数,并在其中调用基类的该函数,或者完全重写该函数。
希望这些解决方法对你有帮助!如果还有其他问题,请随时提问。
相关问题
Src/MediaSession/MediaSubSession/MediaSubSessionEx.h:45:15: error: 'virtual void Dahua::Intervideo905::CJTBBMediaSubSession::onCaptureFrame(int, const Dahua::Intervideo905::CIVFrame&)' is protected Src/MediaSession/MediaSubSession/MediaSubSessionFtp.cpp:1
这个错误是由于在文件 "MediaSubSessionEx.h" 中的函数 "onCaptureFrame" 被声明为 protected 导致的。而在文件 "MediaSubSessionFtp.cpp" 中,你可能尝试了调用这个函数,但由于访问权限受限,所以导致了编译错误。
要解决这个问题,你可以考虑以下几个方案:
1. 将 "onCaptureFrame" 函数的访问权限改为 public,这样在其他文件中就可以正常调用它了。
2. 在 "MediaSubSessionFtp.cpp" 中,如果你无需直接调用 "onCaptureFrame" 函数,可以考虑使用其他公共接口或函数来实现你的需求。
3. 在 "MediaSubSessionFtp.cpp" 中,如果你确实需要直接调用 "onCaptureFrame" 函数,可以考虑将 "MediaSubSessionEx.h" 中的类声明为派生类,以便在子类中可以访问 protected 成员函数。
根据你的具体需求,选择适合的解决方案来修复这个错误。
阅读全文