草庐IT

dynamic-class

全部标签

c++ - 访问父类(super class)类型成员对象的 protected 成员——一个优雅的解决方案

首先,我知道我做不到,我认为这不是重复的问题(this和this问题处理的是同一个问题,但他们只想解释为什么它不起作用).所以,我对类和继承有类似的概念,我会以某种方式优雅地做一些被禁止的事情。这是一个非常简单的代码片段,它反射(reflect)了我想要做的事情:#includeclassA{protected:intvar;std::vectorheavyVar;public:A(){var=1;}virtual~A(){}virtualvoidfunc(){std::coutvarmyA=&a;this->var=this->myA->var;//copysomesimpledat

c++ - 什么时候必须/应该使用 dynamic_cast 而不是 static_cast?

我想知道什么时候dynamic_cast必须或应该在static_cast上使用,并提供示例。我读过thisSOquestion,但它并没有真正提供任何具体的例子。我假设大多数示例都涉及多态类类型。目前我知道在static_cast上使用dynamic_cast的唯一原因是我不能100%确定我正在使用的具体类型。一些其他的想法:横向转换(在多重继承中)在虚拟继承层次结构中转换为基类在使用多重继承的类中转换到“最右边”的继承类型时,指针会改变(如果使用static_cast)吗?“如果类型未知”是唯一的原因吗?如果不是,有人可以提供示例来说明为什么必须或应该使用dynamic_cast而

c++ - Eclipse CDT 调试 : Show dynamic type

我正在使用CDT进行C++开发,它使用gdb进行调试。调试变量View仅显示变量的声明类型-而不是基于vtable信息的实际类型。由于我严重依赖动态子类化,声明的类型通常不包含我需要的信息。我还必须检查实际子类的值。我发现了这个问题:vtableinpolymorphicclassofC++usinggdb据说gdb能够使用以下命令打印基于vtable信息的实际类型:setprintobjecton但是如何在EclipseCDT中执行此操作?顺便说一句:这不是一个很常见的用例,所以默认情况下应该启用它吗?一旦有人使用继承和虚拟的东西,在调试过程中看到真实的对象类型就非常重要。仅显示已声

c++ - Qt错误: 'const class QString' has no member named 'toStdString'

我收到此错误error:'constclassQString'hasnomembernamed'toStdString'虽然QString有它。(link).代码std::stringMessage::toStdString()const{returnm_string.toStdString();} 最佳答案 直接从这里复制答案:HowtoconvertQStringtostd::string?QStringqs;//EitherthisifyouuseUTF-8anywherestd::stringutf8_text=qs.toU

Kubernetes基础(二十)-k8s存储对象Storage Classes

1 什么是StorageClasses?在Kubernetes中,StorageClasses是用于定义不同存储配置的资源。它们允许开发者抽象存储的物理细节,使其更易于管理和使用。通过StorageClasses,可以定义存储的类型、性能、卷大小等参数,使得应用程序能够根据需求选择合适的存储。2StorageClasses的工作原理StorageClasses工作的基本原理是通过定义标准化的存储配置,使得开发者可以在不关心底层实现的情况下请求和使用存储资源。以下是StorageClasses的基本工作流程:StorageClass的定义:管理员通过Kubernetes资源清单文件定义Stora

javascript - 如何从 C++ 中返回一个新的 V8 javascript "class"实例?

当使用V8作为脚本引擎时,我向Javascript公开了一个名为construct_with_ec6_syntax的C++函数。这个函数在被调用时应该简单地返回一个some_ec6_class的实例。这个C++函数基本上应该执行以下等效的Javascript:returnnewsome_ec6_class(111,222);这个类将在Javascript中定义如下EC6语法:classsome_ec6_class{constructor(x,y){this.result=x+y;}}我的目标是在Javascript中运行以下...varthe_instance=construct_wi

c++ - CMake Find_Package(PythonLibs): Does CMake give a preference to dynamic or static libraries?

当我运行FindPackage(PythonLibs)时,它首先找到静态python库python3.5m.a,而不是python3.5m.so。这是CMake的预期行为吗?我怀疑它不符合CMakebugreport;然而,这个错误报告是在2005年提交的。13年来情况发生了变化。如果共享库有偏好,那么知道为什么CMake会找到静态库而不是共享库吗?我已经通过使用SET()命令告诉CMake正确的库在哪里用于我自己的构建来解决构建问题。我正在寻找一个可以更好地理解CMake在这种情况下的行为的答案,因为我正在尝试解决不同的problem,并在共享库中找到static对我来说似乎很奇怪。

c++ - 类(Class)友元和继承问题

我觉得我在这里遗漏了一些明显的东西,但我有一个类将另一个类声明为友元,但似乎无法访问其私有(private)成员。我已将问题最小化如下:Widget.hpp:templateclassFoo;templateclassWidgetBase{protected:T*ptr;public:WidgetBase(T*ptr):ptr{ptr}{}virtualvoidf()=0;};templateclassWidgetDerived:publicWidgetBase::Bar,T>{public:usingWidgetBase::Bar,T>::WidgetBase;usingWidget

c++ - 将类型解析为 class::typedef 的更短方法

我有几个类(class)。现在它们被一个符号隔开。其中很少包含type(typedef),也很少没有。structA{...public:typedefsomeclasstype;}structB{...};我想实现一个SFINAE以这样的方式上课,Resolve::typeo1;//shouldresolveto'A::type'Resolve::typeo2;//shouldresolveto'B'一种方法是使用上一个链接中所示的基本SFINAE,它检查T是否包含type,然后使用bool检查器.例如,templatestructhas_type{typedefcharyes[3]

c++ - MFC 中的抽象基类是否需要 DECLARE_DYNAMIC?

我有一个派生自MFCCView类和模板化类的基类,例如;templateclassCMytViewT:publicCView,publicCMyTemplateClassT{DECLARE_DYNCREATE(CMyViewT)private:CMyViewT();'''}IMPLEMENT_DYNCREATE(CMyViewT,CView)现在我猜测MFC宏会被模板打乱,并且正在考虑删除此类的动态创建宏,并为模板的每个特化重新引入它。例如templateclassCMytViewT:publicCView,publicCMyTemplateClassT{public:CMyViewT