C++ 错误:没有名为';接口提供商';在命名空间中';内容::shell';;你是说';::shell::InterfaceProvider';?

C++ 错误:没有名为';接口提供商';在命名空间中';内容::shell';;你是说';::shell::InterfaceProvider';?,c++,blink,C++,Blink,当我包括render_tree_node.h时,我得到了以下编译时错误 在我的示例中,是.cc 包括在.././content/shell/browser/my_example.cc:17: 在从.././content/browser/frame_host/frame_tree_node包含的文件中。h:17: 在文件中包括从 ../../content/browser/renderer\u host/render\u process\u host\u impl.h:165:3:错误:命名空间

当我包括render_tree_node.h时,我得到了以下编译时错误 在我的示例中,是.cc

包括在.././content/shell/browser/my_example.cc:17: 在从.././content/browser/frame_host/frame_tree_node包含的文件中。h:17: 在文件中包括从 ../../content/browser/renderer\u host/render\u process\u host\u impl.h:165:3:错误:命名空间“content::shell”中没有名为“InterfaceProvider”的类型;你是说“::shell::InterfaceProvider”吗

当我在不添加示例的情况下编译它时,它确实编译了代码

我已经尝试在我的示例的buildl.gn中添加依赖项

有人能帮忙吗

渲染\u进程\u主机\u impl.h如下所示:->

   namespace shell {
   class InterfaceRegistry;
   }
   namespace content {
   virtual shell::InterfaceRegistry* GetInterfaceRegistry() = 0;
   }
mmExample.cc #包括“/render\u tree\u node.h”

我的问题是,当我编译myExample.cc时,上面提到的错误会出现,否则它不会出现,还有其他文件也会使用此文件,并且此文件正在编译。即使没有添加我的文件,我也会重新检查


有什么问题吗?

等等,什么?命名空间中的纯虚拟函数?那怎么行??????我得到了类shell::InterfaceRegistry的错误,而不是虚拟函数friend的错误,请阅读描述dude中的错误。是的,但这不是您唯一的错误。通过将render_tree_node.h包含到myexample.h中,可以修复该错误,无需额外更改。虽然我没有理解你关于虚拟函数的观点,但是我在同一个名称空间中使用这个虚拟函数,否则它将不只是可见的。无论如何,非常感谢您的帮助。虚拟函数只能在类中使用。请花些时间学习如何创建一个新的。我们必须看到导致错误的实际代码。如果您在问题中重新键入代码,而不是复制粘贴实际代码,那么您可能会添加其他错误,从而分散您的注意力。或者更糟的是,您可能无意中修复了重新键入中的错误。另外,请花些时间来学习。