jjzjj

reinterpret-cast

全部标签

java - 为什么 Class.getClass() 可以不同于 Class.cast() 返回类型?

我希望你能在这件事上帮助我。我一直在寻找这个问题的答案,但我能找到的都与泛型类型的使用或关于反射的一般说明有关。假设我们有一个父类和一个扩展该父类的子类。所以,请看下面:Parentv=newChild();如果我创建v.getClass(),它会返回Child。但是,如果我创建v.getClass().cast(),它会返回类型为Parent的对象。有人知道为什么会这样吗?我也看了看JavaAPI文档,找不到原因...感谢您的任何想法。 最佳答案 对象的运行时类型与变量或表达式的编译时类型之间存在重要区别。表达式的编译时类型只能根

java - 类转换异常 : DispatcherServlet cannot be cast to Servlet

我使用maven-eclipse创建了一个新的SpringMVC项目,但抛出了以下错误:(我尝试了一些来自stackoverflow的解决方案,但在我的案例中不起作用。我找不到pom.xml的一些问题。我为servlet-api添加了提供的范围并尝试了它也不起作用。)SEVERE:Servlet/Remindemthrewload()exceptionjava.lang.ClassCastException:org.springframework.web.servlet.DispatcherServletcannotbecasttojavax.servlet.Servlet我的pom.

c++ - dynamic_cast 失败 - 取决于操作系统版本

我有一个失败的动态转换。类布局是这样的:classA1{public:virtualintfoo1()=0;};classA2{public:virtualintfoo2();};classA3{public:virtualintfoo3();};classB:publicA1,publicA2,publicA3{intbar();};现在我使用指针(因此不会发生切片)进行向下转换。main(){Bb;A1*a1=dynamic_cast(&b);//okB*b1=dynamic_cast(a1);//okA2*a2_1=dynamic_cast(a1);//OSX10.7ok,OSX

c++ - C++ 被认为是弱类型的吗?为什么?

我一直认为C++是目前最强类型的语言之一。所以我很震惊看到Table3ofthispaper说明C++是弱类型的。显然,CandC++areconsideredweaklytypedsince,duetotype-casting,onecaninterpretafieldofastructurethatwasanintegerasapointer.类型转换的存在是否重要?这种类型转换的明确性不重要吗?更一般地说,人们真的普遍认为C++是弱类型的吗?为什么? 最佳答案 该论文首先声称:Incontrast,alanguageiswea

c++ - 将函数指针从一种类型转换为另一种类型的最佳方法是什么?

我在StackOverflow上搜索了一个答案,但我没有得到任何关于这个问题的具体信息:只有关于使用各种类型的转换运算符的一般情况。因此,恰当的例子是使用WindowsGetProcAddress()API调用检索函数地址时,它返回类型为FARPROC的函数指针,其中:typedefINT_PTR(__stdcall*FARPROC)();.问题是,很少(如果有的话)寻求的实际函数具有此实际签名,如下面的MRCE代码所示。在这段代码中,我展示了将返回值转换为适当类型的函数指针的各种不同尝试,除第四种方法外,所有方法都被注释掉了:#include#includetypedefDPI_AW

c++ - 为什么 dynamic_cast 存在?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Regularcastvs.static_castvs.dynamic_cast我通过这个问题了解了static_cast的工作原理。Whyisitimportanttousestatic_castinsteadofreinterpret_casthere?但如果static_cast确实知道类的继承关系,为什么dynamic_cast存在?我们什么时候必须使用dynamic_cast?

C++ 将 lexical_cast double boost 为字符串

对于下面的一段代码std::cout(2.34)我得到以下输出:2.3399999999999999如果我这样做doubled=2.34;std::stringstreamss;ss我得到以下输出:2.34为什么会这样?显然,我正在寻找后者的输出表示,而不是前者。谢谢, 最佳答案 这与boost::lexical_cast无关,但它伴随着double的内部表示:另请参阅此答案:C++internalrepresentationofdouble/float 关于C++将lexical_ca

c++ - <locale> 中的 "ctype"函数抛出 std::bad_cast

这个程序#include#includeintmain(){std::isxdigit(std::cin.peek(),std::cin.getloc());}抛出std::bad_cast类型的异常使用libstdc++使用gcc或clang编译时在我身上。用VS2010运行正常。我明白这里发生了什么。peek()返回int以适应带外EOF值。语言环境不需要ctype方面(他们在VS中确实有这个方面,也许作为扩展)。如果语言环境没有执行功能的方面,它将抛出bad_cast。.但这不应该按照原始的精神来工作吗??这是标准的缺陷吗?是否有普遍接受的解决方法?我知道我可以自己检查EOF并转

c# - Windows 手机 8.1 : C# Callback with IList variable fails to cast to IVector

我有一个声明回调接口(interface)的C#windowsphone8.1VisualStudio(2013)项目publicinterfaceICallBack{//////TheChildCallbackmustoverridethismethodandthiswillbefiredwhentimecomes//////Theresultantfiles///ErrorcodevoidGotFileList(FileTypetype,IListfiles,ErrorCodecode);}我有一个按如下方式实现它的C++/CX包装器:refclassCallbackImplsea

C++ 类型比较 : typeid vs double dispatch dynamic_cast

是否有任何性能或稳健性原因使您更喜欢其中一个?#include#includestructB{virtualboolIsType(Bconst*b)const{returnIsType2nd(b)&&b->IsType2nd(this);}virtualboolIsType2nd(Bconst*b)const{returndynamic_cast(b)!=nullptr;}};structD0:B{virtualboolIsType(Bconst*b)const{returnIsType2nd(b)&&b->IsType2nd(this);}virtualboolIsType2nd(B