草庐IT

default-interface-member

全部标签

c++ - 我如何跟踪(枚举)实现接口(interface)的所有类

我有这样一种情况,我有一个接口(interface)定义了某个类的行为方式,以便在我的程序中扮演某个角色,但此时我不能100%确定我将写入多少个类填补那个角色。然而,与此同时,我知道我希望用户能够从GUI组合/列表框中选择哪个具体类实现了他们想要用来填补特定角色的接口(interface)。我希望GUI能够枚举所有可用的类,但我宁愿在决定实现一个新类来填补该角色时不必返回并更改旧代码(这可能是几个月后)我考虑过的一些事情:使用枚举优点:我知道怎么做缺点我必须在添加新类时更新枚举难以迭代在接口(interface)中使用某种static列表对象,并从实现类的定义文件中添加一个新元素优点:

c++ - 如何在 C++ 中使用基类实现流畅的接口(interface)

如何在C++中实现这个流畅的接口(interface):classBase{public:Base&add(intx){return*this;}}classDerived:publicBase{public:Derived&minus(intx){return*this;}}Derivedd;d.add(1).minus(2).add(3).minus(4);当前代码不工作,因为基类对派生类等一无所知。如果有提示/建议,我将不胜感激。 最佳答案 使基类模板化。使用所需的Base模板类型返回类型,如下所示:templateclass

c++ - C++接口(interface)中的私有(private)方法?

为什么我要定义一个包含私有(private)方法的C++接口(interface)?即使在公共(public)范围内的方法在技术上假设行为类似于在接口(interface)实现上使用私有(private)方法的模板方法,即使如此,我们也会告诉技术规范。直接从界面。这不是偏离了接口(interface)的原始用法,即外部和内部之间的公共(public)契约吗?您还可以定义一个友元类,它将使用我们类中的一些私有(private)方法,从而强制通过接口(interface)实现。这可能是一个争论。在C++接口(interface)中定义私有(private)方法还有哪些其他参数?

c++ - haskell FFI : Interfacing with simple C++?

就我目前所读的内容而言,将FFI与C++结合使用非常难以实现。最大的原因之一似乎是将C++对象转换为Haskell。我现在的问题是我没有任何C经验,但有几年C++经验,而且我更喜欢OOP。因此,自然而然地想从C++中受益。那么我可以编写专供HaskellFFI使用的C++程序来解决这些问题吗?C++可以在幕后做任何事情,但API会像C一样,即我不交换对象,没有重载的顶级函数等等。有什么需要注意的陷阱吗?(将我的项目与您可能熟悉的项目进行比较:考虑使用SciPy的Weave来加速Python代码。) 最佳答案 是的,如果您在C++代码

c++ - 转换 COM 接口(interface)

我今天在我的代码中遇到了一个问题,AFAICT,通过将我的COM对象强制转换为IUnknown**导致访问冲突。它被传递到的函数执行时没有问题,但是当调用我的对象的函数之一时,它会执行一些随机函数并破坏堆栈然后死掉。指示性代码(只是忽略为什么这样做-我知道它很糟糕并且我知道如何修复它但这是一个问题,为什么会出现这样的问题):voidMyClass2::func(IMyInterface*pMyObj){CComPtrpMyObj2;HRESULThRes=pMyObj->GetInternalObject((IUnknown**)&pMyObj2);if(SUCCEEDED(hRes)

c++ - 为什么 =default on operator= 在有 const 成员时编译?

classFoo{public:Foo&operator=(constFoo&)=default;private:constinti=0;};为什么=default在那里被允许?它编译没有错误。我认为=default应该失败,因为它不可能分配给const变量?到底发生了什么? 最佳答案 当无法生成该函数时(就是这种情况),=default会将其生成为=deleted。如果您尝试使用该赋值运算符,您的编译器应该produceanerror. 关于c++-为什么=defaultonopera

鸿蒙开发解决hvigor ERROR: Failed :entry:default@ProcessLibs...

文章目录项目场景:问题描述原因分析:建议的解决方案总结HarmonyOSArkTS项目场景:项目无法在真机上运行。报错hvigorERROR:Failed:entry:default@ProcessLibs…hvigorERROR:2filefoundin‘lib/arm64-v8a/libagccrypto.so’.Thismaycauseunexpectederrorsatruntime.问题描述报错问题如下:hvigorERROR:Failed:entry:default@ProcessLibs…hvigorERROR:2filefoundin‘lib/arm64-v8a/libagcc

C++ 和 R 接口(interface),获取输出

我刚开始学习R,因此遇到了看似微不足道的问题。我试图弄清楚R中的值是如何输出的。在C++中,我们只使用返回变量,但R似乎不是这种情况。假设我有一个函数接受4个输入参数,将这些参数传递给c++函数执行所需的计算,现在如果我想在R中加载这个myfun并从c++函数中获取输出,我需要做什么?以下是我尝试使用的模板。extern"C"{SEXPmyfun(SEXPS,SEXPA,SEXPB,SEXPC){//willcallthisfunctionfromR.SEXPrate,dir,list,list_names;//declarevariablesPROTECT(rate=allocMat

ROS2中解决rqt_graph不显示系统结构以及interface不能查看数据类型具体的数据结构问题

背景:​在上篇博客中,详细介绍了安装ROS的过程,参考链接:https://blog.csdn.net/zhangzhangshu/article/details/135701875安装完成后,跟着古月大佬学习ROS2,在这个过程中,遇到了不少问题,今天这篇博客主要介绍其中的两个,以及对应的解决方案。​遇到问题及解决办法先放上两个问题的报错内容:问题一:rqt_graph可视化工具不能正常显示网络形态问题二:使用interface查看数据类型具体的数据结构报错报错内容:Traceback(mostrecentcalllast):File"/opt/ros/humble/bin/ros2",li

c++ - 关于一篇介绍C++接口(interface)的文章的问题

我一直在阅读一篇关于C++接口(interface)的文章(http://accu.org/index.php/journals/233),我完全迷失在它说所有虚拟成员函数都应该设为私有(private)的部分(标题为“加强分离”的部分)。这对我来说根本没有意义。按照作者的说法,代码是这样的:classshape{public:virtual~shape();virtualvoidmove_x(distancex)=0;virtualvoidmove_y(distancey)=0;virtualvoidrotate(anglerotation)=0;//...};classline:p