草庐IT

HyperDescriptor-Accelerated-dynam

全部标签

c++ - 如果与指针一起使用,dynamic_cast 何时会抛出异常?

我在源代码中使用dynamic_cast将指针转换为如下所示,Base*base=herestoringthepointer;Derived*derived=dynamic_cast(base);如果base没有类层次结构的指针,则转换失败并返回NULL。在接下来的几行中,我正在检查NULL。所以没问题。我遇到了故障转储,我的应用程序由于dynamic_cast抛出异常而崩溃。我知道dynamic_cast只有在与引用类型一起使用时才会抛出异常。知道当我在上面的源代码中使用指针时,dynamic_cast会抛出异常吗? 最佳答案 A

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++ - 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