草庐IT

good-dynamics

全部标签

c++ - 使用 dynamic_cast 转换 const 类

我想投这个:classBase{public:virtual~Base(){};};classDer:publicBase{};intmain(){constBase*base=newDer;Der*der=dynamic_cast(base);//Errorreturn0;}我该怎么办?我试着输入:constDer*der=dynamic_cast(base);维护常量,但这不起作用。 最佳答案 试试这个:constDer*der=dynamic_cast(base);dynamic_cast无法删除const限定符。您可以使用c

c++ - 错误 : cannot dynamic_cast . ..(目标不是指针或引用)

我正在学习C++中的异常处理并遇到了问题。这是代码:#include#includeusingnamespacestd;classA{public:virtualvoidf(void){}};classAA:publicA{public:voidaa(void){};};intmain(void){Aa;try{dynamic_cast(a).aa();}catch(exceptionex){cout所以我以为trycatch会让函数执行并告诉我异常的内容,但是我的编译器没有编译它。我在GNUGCC中使用代码块。请帮助我并告诉我我需要做什么才能让代码按预期运行。非常感谢。

c++ - 构造函数中的网络连接设置 : good or bad?

我正在开发一个类来处理与可能可用或不可用的远程进程的交互;事实上在大多数情况下它不会。如果不是,则该类的对象在生活中没有任何目的,需要消失。是否不那么丑陋:在构造函数中处理连接设置,如果进程不存在则抛出异常。在单独的connect()方法中处理连接设置,如果进程不存在则返回错误代码。在选项1)中,调用代码当然必须将该类的实例化以及处理它的所有其他内容包装在try()block中。在选项2中,它可以简单地检查connect()的返回值,如果失败则返回(销毁对象),但它不太符合RAII,相关地,如果我选择选项1),是抛出一个std::exception类、从中派生我自己的异常类、滚动我自己

c++ - DECLARE_DYNAMIC 和 DECLARE_DYNCREATE 之间的区别?

你能告诉我DECLARE_DYNAMIC和DECLARE_DYNCREATE有什么区别吗?我们究竟可以在哪里使用它们? 最佳答案 第一个声明类具有运行时类型信息,第二个声明可以在运行时动态创建实例。这在MSDN文档中有详细描述-请参阅Run-TimeObjectModelServices等链接了解更多信息。 关于c++-DECLARE_DYNAMIC和DECLARE_DYNCREATE之间的区别?,我们在StackOverflow上找到一个类似的问题: htt

c++ - dynamic_cast 困惑

我放弃了这个...$5.2.7/2-"IfTisapointertype,vshallbeanrvalueofapointertocompleteclasstype,andtheresultisanrvalueoftypeT.IfTisareferencetype,vshallbeanlvalueofacompleteclasstype,andtheresultisanlvalueofthetypereferredtobyT."根据上述,下面的代码应该是合式的。structA{};structB:A{};intmain(){Bb;Aa,&ar1=b;B&rb1=dynamic_cast

c++ - HDF5 C++ 接口(interface) : writing dynamic 2D arrays

我正在使用HDF5C++API编写二维数组数据集文件。HDF集团有anexampletocreate来自静态定义数组大小的HDF5文件,我已对其进行修改以满足下面的需求。但是,我需要一个动态数组,其中NX和NY都是在运行时确定的。我找到了anothersolutiontocreate2Darraysusingthe"new"keyword帮助创建一个动态数组。这是我所拥有的:#include"StdAfx.h"#include"H5Cpp.h"usingnamespaceH5;constH5std_stringFILE_NAME("C:\\SDS.h5");constH5std_str

c# - 与 C++ 的 dynamic_cast 等效的 C# 是什么?

此C++代码检查o是否为Node*,如果是,则调用d上的方法。if(Node*d=dynamic_cast(o))d->do_it();用C#编写等效项的最短和/或最有效的方法是什么? 最佳答案 假设Node是一个class然后执行以下操作Noded=oasNode;if(d!=null){d.do_it();}如果它是一个struct那么试试这个if(oisNode){((Node)o).do_it();} 关于c#-与C++的dynamic_cast等效的C#是什么?,我们在Stac

C++ dynamic_cast - 多态要求和向下转型

在下面的代码中,同时构造obj在情况1中,我们构造一个derived类对象也是,但其成员函数无法访问obj.因此,在向下转换时(即情况2),使用obj作为来源,我们有构建的derived已经在里面了。为什么obj需要多态吗?如果我上面的描述让你感到困惑,为什么不obj向上转型时需要多态,但向下转型时确实在使用dynamic_cast时需要多态?classbase{public:base(){cout(newderived);//case1:explicitlyupcastingderived*OBJ=dynamic_cast(obj);//case2:error

C++ dynamic_cast 转发声明的类模板编译,但它安全吗?

以下代码在(GCC和clang)中编译并给出预期的结果:templatestructDerived;structBase{templatevoidfoo(T*constt){dynamic_cast*const>(this)->bar(t);}};templatestructDerived:Base{voidbar(Tconst*)const{}};代码将对Base中的foo的调用分派(dispatch)到Derived中的bar。作为引用,以下代码无法编译:structDerived2;structBase2{templatevoidfoo(T*constt){dynamic_cas

UE4 Ultra Dynamic Sky 参数翻译及功能概述

UltraDynamicSky的虚幻商城链接:UltraDynamicSkyUltra_Dynamic_Sky翻译及功能概述basiccontrols基础控制RefreshSettings刷新设置检查此布尔一次,以刷新所有设置;TimeOfDay一天中的时间一天中天空模仿的时间,从0000到2400。例如早上九点半数值为“930”,下午五点35数值为“1735”。SkyMode天空模式确定渲染的云/极光的类型VolumetricClouds体积云StaticClouds静态云2DDynamicClouds二维动态云NoClouds没有云2DCloudsusingColorCurves(Lega