草庐IT

non-interface

全部标签

c++ - 如何摆脱 - 来自 NULL 的 "warning: converting to non-pointer type ' 字符”?

我有这段代码:intmyFunc(std::string&value){charbuffer[fileSize];....buffer[bytesRead]=NULL;value=buffer;return0;}行-buffer[bytes]=NULL给我一个警告:convertingtonon-pointertype'char'fromNULL。我如何摆脱这个警告? 最佳答案 不要使用NULL?它一般是为指针保留的,你没有指针,只有一个简单的char。只需使用\0(空终止符)或简单的0。

user-interface - 给定背景颜色的良好文本前景色

我正在绘制一个颜色选择按钮,我正在寻找一个漂亮而简单的公式来为给定的RGB背景颜色获得良好的文本颜色(前景)。一个简单的尝试是只采用补色,但这会为纯蓝色或纯红色等颜色生成一个看起来很奇怪的按钮。有什么众所周知的东西吗?如果这很重要,我正在使用QT。 最佳答案 为了获得最大的易读性,您需要最大的亮度对比度,而不会出现无法协同工作的色调。最一致的方法是坚持使用black或white作为文本颜色。您或许可以想出更美观的方案,但没有一个方案更清晰易读。要在黑色或白色之间做出选择,您需要知道背景的亮度。由于两个因素,这变得有点复杂:红、绿、蓝

c++ - 如何使用 Qt 在 Windows 上检查网络接口(interface)类型是以太网还是无线?

我需要找出PC上的网络接口(interface)类型是有线还是无线。我尝试使用提供适配器名称的QNetworkInterface类。但是Windows上的用户可以更改适配器名称。在Mac上,我可以检查接口(interface)类型为eth0或eth1,因为它对所有用户都是相同的。我也试过QNetworkConfiguration::bearerType,但我得到的配置是以太网,即用于有线和无线配置的BearerEthernet。有没有其他方法可以在Qt中或使用特定于Windows平台的API找出网络接口(interface)类型? 最佳答案

c++ - 为什么将 "pointer to pointer to non-const"转换为 "pointer to pointer to const"是不合法的

将非const指针转换为const指针是合法的。那为什么将指向非const的指针转换为指向const的指针是不合法的呢?例如,为什么下面的代码是非法的:char*s1=0;constchar*s2=s1;//OK...char*a[MAX];//akachar**constchar**ps=a;//error! 最佳答案 来自标准:constcharc='c';char*pc;constchar**pcc=&pc;//notallowed*pcc=&c;*pc='C';//wouldallowtomodifyaconstobject

c++ - 为什么我不能使用继承来实现C++中的接口(interface)?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:ImplementingabstractclassmembersinaparentclassWhydoesC++notletbaseclassesimplementaderivedclass'inheritedinterface?考虑这些对象:structA{virtualvoidfoo()=0;};structB{voidfoo(){/*neatimplementation*/}};我想知道为什么--compiler-wise--以下对象被认为是抽象的:structC:B,A{usingB::foo;//I

C++ 接口(interface)、继承、多态性

想象一下这个场景:接口(interface)I1:m1(),由C1类实现接口(interface)I2:m2(),由C2类实现接口(interface)I3:m3(),由C3类实现我想定义接受参数arg的函数。voidf1(I1arg){usem1()}voidf2([I1,I2]arg){usem1()andm2()}voidf3([I2,I3]arg){usem2()andm3()}然后我要定义:一个“union”接口(interface)I123,它具有所有方法,由C123实现一个“union”类C123,它继承现有类C1、C2、C3的实现方法。然后我想实例化C123并将其与f1

c++ - 如何在不破坏 Decorator 模式的情况下精简 Fat Interface?

在我的C++库代码中,我使用抽象基类作为所有不同类型的I/O对象的接口(interface)。目前看起来像这样://All-purposeinterfaceforanykindofobjectthatcandoI/OclassIDataIO{public://basicI/Ocallsvirtualssize_tRead(void*buffer,size_tsize)=0;virtualssize_tWrite(constvoid*buffer,size_tsize)=0;//Seekingcalls(implementedtoreturnerrorcodes//forI/Oobjec

c++ - boost multi_index : retrieve unique values of a non-unique key

我有一个boost::multi_index_container其元素是这样的结构:structElem{Aa;Bb;Cc;};主键(在数据库意义上)是a和b的composite_key。其他键的存在是为了执行各种类型的查询。我现在需要检索一组c的所有不同值。这些值是无论如何不是唯一的,而是遍历所有条目(尽管是有序的),或者使用std::unique似乎很浪费,考虑到c的不同值的数量预计将我是否缺少更有效地获得此结果的简单方法? 最佳答案 我搜索了Boost.MultiIndex文档,但似乎无法找到一种方法来执行您想要的操作。我很想

c++ - Operator = 不是 DLL 中导出的 C++ __interface 的成员

我一直在为库编写一些代码,并尝试使用默认的Win32控制台应用程序来运行所有内容。因为我已经完成了所有类(class),所以我想将所有内容提取到一个DLL中,因此我开始使用通常的宏进行改编:#ifdefMYLIB_EXPORTS#defineDllExport__declspec(dllexport)#else#defineDllExport__declspec(dllimport)#endif我在我的代码中使用一个接口(interface),它是这样定义的:__interfaceDllExportISerializable{voidSerialize(/*...*/);/*someo

c++ - 为什么 boost::interprocess::managed_shared_ptr to non-const 不能转换为 managed_shared_ptr to const

据我了解,以下内容对boost::shared_ptr有效:boost::shared_ptrptr;...boost::shared_ptrc_ptr=ptr;//Valid相同的行为不适用于boost::interprocess::managed_shared_ptr。为什么? 最佳答案 boost::interprocess::managed_shared_ptr实际上不是共享指针;它只是一个辅助类,您可以使用它来定义一个类的类型。来自interprocessdocs:typedefmanaged_shared_ptr::ty