草庐IT

multiple-interface-implem

全部标签

java - 如何使用 SWIG 生成的接口(interface)将字符串从 Java 传递给 C++ 函数

我有一堆以Cstd:string作为函数参数的C++函数。我想将java字符串传递给那些函数。我已经在J​​ava和C++之间生成了一个SWIGJNI接口(interface)。我可以看到无参数构造函数很好,但是如果我尝试在构造函数中使用String参数编译我的java,我会得到“找不到符号”,我认为这是因为类构造函数的方式发生了一些有趣的事情被定义。如何解决这个问题?类型图是答案吗?如果是这样-你从哪里开始? 最佳答案 一种方法,如果您要调用一小组函数,可能是简单地将采用std::string的C++方法与采用char*的方法包装

c++ - 将数据从 C++ 传递到 gnuplot 示例(使用 Gnuplot-iostream 接口(interface))

我刚刚接触到DanStahlke的gnuplotC++I/O接口(interface),它使我免于“自己动手”。不幸的是,没有太多示例,也没有真正的文档。我的C++项目中有以下数据类型:structData{std::stringdatestr;//xaxisvaluefloatf1;//yaxisseries1floatf2;//yaxisseries2floatf3;//yaxisseries3};typedefstd::vectorDataset;我想从C++传递一个Dataset变量,这样我就可以绘制数据(X轴上的日期,以及Y轴上绘制为时间序列的3个数字)。谁能告诉我如何将Da

C++ boost Asio : How do I have multiple clients?

如何在boostasio中通过单个端口建立多个连接?是否需要为每个客户端配备一个套接字? 最佳答案 当一个新的连接被接受时,一个新的套接字将被创建,你不必自己创建套接字。您是否检查过手册中的示例?与聊天服务器一样,我认为它可以处理多个连接。 关于C++boostAsio:HowdoIhavemultipleclients?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/80072

c++ - 接口(interface)C++的好处?

看这段代码#includeusingnamespacestd;//ShapeisanInterfaceClass.NodataandeverythingpurevirtualclassShape{public:virtualvoidArea(intlength,intbreadth)=0;virtualvoidPerimeter(intlength,intbreadth)=0;//Note,nodata};//Derivedclass-InheritsShapeasPublicclassRectangle:publicShape{public:voidArea(intlength,in

c++ - 使用 C 的回调接口(interface)时避免在 C++ 中使用静态成员函数

我想访问这个静态成员函数中的数据。现在成员函数是静态的,因此我可以将它与用C编写的第三方API一起使用,该API具有用于回调目的的typdef函数指针。根据下面的信息,什么是最好的方法来解决创建静态函数的需要,以便在我的类的其他非静态成员函数中使用来自以下函数成员的数据。也许有一种方法仍然可以使用这个静态函数,但仍然可以克服无法将静态变量与非静态变量混合的问题。我的代码按原样运行,但无法访问以下回调函数中的数据。voidTextDetect::vtrCB(vtrTextTrack*track,void*calldata)/*actsasacallback*/{/*specificall

c++ - 如何为集合提供带有迭代器的 const 接口(interface)?

我想创建一个具有如下签名的函数://Setfoundtobeaniteratortothelocationofkeyinmaporend()//ifnotfound.boollookup(constKey&key,conststd::map&map,std::map::const_iterator&found);但我也想在映射和迭代器不是const的情况下调用它,以便我可以修改找到的值:constKeykey;std::mapmap;std::map::iteratorfound;if(lookup(key,map,found)){found->second.modifingNonCo

c++ - 添加新继承的 "interface"和虚拟方法需要重新编译

现有的答案涵盖了一般情况,但它们有些模糊,我需要确定这一点。考虑:派生自抽象基类“接口(interface)”的现有定义类。类是库的一部分,被编译成多个dll,这些dll通过接口(interface)相互通信。然后添加:第二个“接口(interface)”,定义的类现在将从中派生(因此现在它有两个接口(interface))。由新接口(interface)访问的已定义类的新虚拟方法。我是否需要重新编译链接该库的每个dll,还是只需要重新编译使用新方法的dll?编辑:我的原始接口(interface)公开了一个动态方法,它是Dynamic(intOP,void*args)是否可以添加一个

C++/QML : How to define and handle multiple contexts for dynamically created components?

基本上我的情况是这样的:我有一个扩展QQuickView的类,它通过设置上下文属性将某些对象从C++公开到QML。显示的View是从QML创建的,并且都是同一定制组件的不同实例;当某些事件发生时会创建新View,当这种情况发生时,现有View应显示最初在C++端分配给它们的对象,而新View应显示分配给它们的对象。所以,在C++方面,我有这样的东西:WindowManager::WindowManager(QQuickView*parent):QQuickView(parent){//Settingthesourcefiletousethis->setSource(QUrl("qrc:

C++ 多态接口(interface)

我正在尝试创建一种方法来处理许多不同版本的协议(protocol),类似于问题Howtohandledifferentprotocolversionstransparentlyinc++?.我同意继承链可以很好地解决这个问题。这就是我在Java中的做法:创建一个IParser接口(interface),并有几个ParserV0、ParserV1、...类,相互继承并实现IParser。我知道由于某些多重继承和虚拟技巧,在C++中创建该结构是可能的。关键在于:在Java中,如果我想要一个解析器,我想,我可以说IParserparser=getCorrectVersion(...)。我会得

c++ - 接口(interface)的延迟实现

我有一个Foo类。structFoo{voidsomeFunc(){}};我有一个接口(interface)IFoo。structIFoo{virtualvoidsomeFunc()=0;};如果我不想直接将IFoo实现到Foo中,有没有办法在以后实现?...失败的尝试是这样做:创建一个实现它们的类...理论上通过继承Foo来满足IFoo。structBar:Foo,IFoo{};可以这样使用:Barx=Bar();IFoo*y=&x;但这没有用。编译器将Bar视为抽象的。有人有什么想法吗?没有要粘贴的实际代码问题,我只是想看看这样的事情是否可行。 最佳答案