草庐IT

explicit-interface

全部标签

c# - 接口(interface)和 header

今天我遇到了C#接口(interface)的概念,我有一个希望很简单的问题,看看我是否理解它们......它们与C++头文件非常相似吗?我的意思是,据我所知,您定义了一个类的主干,但实际上没有定义它的作用,这有点类似于标题,对吗?我阅读了整个MSDN定义,它并没有真正让我100%清楚。我相信我有这个想法(编写并附上了一个非常初级的程序,看看我是否理解)但是我至少在明天晚上之前完全理解它们的基础知识是非常重要的。示例:namespaceInterfaceTest{classProgram{staticvoidMain(string[]args){KitchenStaffnewKitche

java - 在 C++ 中重叠类似 java 的接口(interface)

我在很多地方都读到过,Java的接口(interface)可以使用C++的抽象类和所有纯虚拟方法100%模拟。我正在尝试转换这段java代码:interfaceA{voida();}interfaceBextendsA{voidb();}classCimplementsA{publicvoida(){}}classDextendsCimplementsB{publicvoidb(){}}Dd=newD();d.a();d.b();在C++中变成这样的东西:classA{public:virtualvoida()const=0;protected:virtual~A(){}};class

c# - 在C++中定义一个需要在C#和C++中实现的接口(interface)

我有一个用C++定义的接口(interface),现在需要用C#实现。最好的方法是什么?我根本不想在我的接口(interface)定义中使用COM。我现在解决这个问题的方法是有两个接口(interface)定义,一个在C++中,一个在C#中。然后,我将C#接口(interface)公开为COM服务器。这是我用C++编写的应用程序可以调用C#。无论如何我可以避免在C++和C#中定义我的实现吗? 最佳答案 如果您愿意为托管代码使用C++/CLI而不是C#,那么您可以直接通过头文件使用nativeC++接口(interface)定义。这将

c++ - 如何在 C++ 中实现多个 COM 接口(interface)?

我正在努力理解thisexamplecode关于浏览器帮助对象。在内部,作者实现了一个公开多个接口(interface)(IObjectWithSite、IDispatch)的类。他的QueryInterface函数执行以下操作:if(riid==IID_IUnknown)*ppv=static_cast(this);elseif(riid==IID_IObjectWithSite)*ppv=static_cast(this);elseif(riid==IID_IDispatch)*ppv=static_cast(this);我了解到,从C的角度来看,接口(interface)指针只是

java - 编写与 Python 接口(interface)的非常快速的抽象的语言选择?

我有一个目前用Python编写的系统,可以分为后端和前端层。Python太慢了,所以我想用一种快速编译的语言重写后端,同时将前端保留在Python中,以一种允许从Python调用后端功能的方式。这样做的最佳选择是什么?我考虑过cython,但它非常有限且编写起来很麻烦,而且速度也不是那么快。根据我对BoostPythonforC++的内存,维护语言之间的桥梁非常烦人。有更好的选择吗?我的主要因素是:执行速度编译速度语言是陈述性的 最佳答案 C++SWIG可以生成您需要的所有胶水代码。只要您避免在C++和Python之间过度跳转,它就

c++ - 如何使用 autotools 在构建库的同时构建 Python 接口(interface)

我目前有一个用C++编写的库,使用GNU自动工具构建,我想向它添加一个Python接口(interface)。我使用SWIG开发了界面,但我在弄清楚如何将Python模块的编译与其余过程集成时遇到了一些问题。我已经查看了AM_PATH_PYTHON,但是这个宏似乎没有为Python.h设置包含路径,所以当我编译我的模块时,我得到了一堆关于缺少包含文件的错误。有没有办法从AM_PATH_PYTHON中获取Python包含路径和ldflags?仅作记录,我认为不可能使用Python的distutils方法(setup.py),因为这需要库的位置才能链接新模块。由于该库在编译时尚未安装,我将

c++ - 嵌套模板特化结果为 "Illegal use of explicit template arguments"?

如何专门化嵌套模板?(请参阅下面的错误。)usingstd::reverse_iterator;templatereverse_iteratormake_reverse_iterator(constIt&it){returnreverse_iterator(it);}templateItmake_reverse_iterator>(constreverse_iterator&it){//Above^//errorC2768://'make_reverse_iterator':illegaluseofexplicittemplateargumentsreturnit.base();}

C++强制运算符==从接口(interface)抽象类重载

在C++上使用接口(interface)(抽象类)我需要强制任何类而不是继承接口(interface)来实现运算符==。考虑这种情况:classIBase{virtualvoidsomeFunc()const=0;}classCInheritClass:publicIBase{virtualvoidsomeFunc()const;virtualbooloperator==(constCInheritClass&obj)const;}voidmain(){CInheritClassinstance;}类CInheritClass必须实现someFunc因为它继承了Ibase,实现了vir

c++ - XML 与硬编码接口(interface)?

我正在开发一个灵活的GUI应用程序,它可以有大约12种不同的布局。这些布局都是明确定义的,不会改变。每个布局都包含多个使用位模式与DLL交互的小部件。虽然大多数小部件是相同的,但使用的位模式因呈现的界面类型而异。我的直觉是使用继承:定义一个通用的“面板”并为不同的配置创建子类。但是,接口(interface)的某些部分是用户定义的,并且规范为在XML文件中指定。应该用XML定义整个面板,还是只定义用户配置的部分? 最佳答案 YAGNI:根据当前要求设计屏幕,您明确声明不会更改这些要求。如果一年后需要更多定制,然后让它更可定制,而不是

C++ DLL插件接口(interface)

我正计划做一个C++插件接口(interface)alaHowtocreatesomeclassfromdll(constructorindll)?(с++)但有人担心,如果该接口(interface)用于通过MinGW或Borland创建DLL,并且DLL加载程序是使用MSVC++编译的,则可能会出现问题。由于唯一导出的函数被声明为extern"C"我不明白为什么它不起作用?想法? 最佳答案 如果您想跨编译器(和发布/调试)兼容并使用C++,您需要付出更多努力。基本上-您可以传递基本数据类型和指向纯虚拟类的指针。这些类不得包含任何