dynamic-cast 相关问题

dynamic_cast转换允许在继承层次结构中安全地将指针(和引用)转换为类,向上,向下和侧向。

与受控制的RTTI使用相比,访客模式是否是更好的选择?

我经常发现自己试图使用boost / QT信号解耦物体。天真的方法是针对我要交流的每种具体类型,我创建一个新的信号和插槽签名并进行布线...

回答 1 投票 1

应在具有重载虚拟函数的模板的基础对象类型上重用代码,以用于派生对象类型

上下文:我得到了下一个构造函数层次:事件-> MouseEvent-> MouseButtonEvent-> MouseWheelEvent-> ...-> ...

回答 1 投票 0

向下广播时不是指针类型

我有一个基类:Base类{public:Base();虚拟〜Base(); .....}类Derived2:public Base {public:Derived2(); ...},而在我的主要工作中,我试图...

回答 2 投票 0

动态广播的操作数不是向下转换时的指针类型

我有一个基类:Base类{public:Base();虚拟〜Base();虚拟无效打印(std :: ostream&os)const = 0; .....}和两个派生类Derived1派生...

回答 2 投票 0

从非模板类到模板子类的动态广播

我有一个非模板类NC和一个派生模板类TC。我想将指向NC的指针(可能是指向TC实例的指针)转换为TC指针。模板的实际类型是...

回答 1 投票 0

[C ++中带有dynamic_cast的问题

我正在用C ++实现不均匀的链表(下面是.cpp和.h文件)。使用intel编译器在Linux上使用icpc test.cpp List.cpp -o test进行编译会产生很多错误(请参见下文)。它...

回答 1 投票 -2

使用dynamic_pointer_cast时发生异常0xC0000409(堆栈缓冲区溢出)

我尝试动态地将类型A的共享点转换为类型B时遇到崩溃。类型B与类型A不相关,并且我希望空的shared_ptr,但是,上面的异常是...

回答 1 投票 -1

为什么保护的继承会导致dynamic_cast失败?

我将C ++基类更改为受保护的继承,并且我的dynamic_cast停止工作。为什么要将继承更改为protected才能更改dynamic_cast的行为? struct Base {...

回答 3 投票 3

((C ++))不应该此dynamic_cast检索派生类[duplicate]

阅读了C ++中的强制转换后,我了解到dynamic_cast应该在“丢失”时检索派生类。以下示例证明我错了。但我还是不明白:尝试...

回答 1 投票 0

为什么当目标指针不是基类的类型时,dynamic_cast才允许为多态类产生一个空指针?

请考虑以下程序#include #include struct A {};结构C {}; int main(){C * pc = nullptr; * pa1 = dynamic_cast ( pc ); ...

回答 1 投票 1

从基本指针到派生的转换问题>>

我具有以下类体系结构:类A {public:A(){} virtual〜A(){} void printA(){cout <

回答 1 投票 0

如何在具有循环依赖关系的类中进行动态广播?

我想动态转换一个类:A.h:类A {}; B.h:类B:公共A {公共:void foo(A * a){C * c = dynamic_cast (a); }; C.h:C类:...

回答 1 投票 1

ِ具有循环依赖关系的类中的dynamic_cast如何?

我想动态转换一个类:A.h:类A {}; B.h:类B:公共A {公共:void foo(A * a){C * c = dynamic_cast (a); }; C.h:C类:...

回答 1 投票 0

可以使用非常量指针调用非常量函数,当两个unique_ptrs指向同一对象时,程序将如何运行?

[第一个问题:现在,我有两个unique_ptrs(ptrToBase和ptrToDerived)指向同一个对象(由make_unique制造)。程序行为是否也未定义,或者如何在破坏程序中起作用...

回答 1 投票 0

java:instanceof和cast的组合?

((请不要建议我应该进一步抽象X并向其添加另一个方法。)在C ++中,当我有一个X *类型的变量x时,如果它也是Y *类型,我想做一些特定的事情(Y是...

回答 6 投票 6

从基类到派生类的动态转换,以访问方法

我可以访问基类PlayerBase,从该基类派生了Player类。还有另一个类GameEventHandler,它负责将“资源”实际委派给每个资源...

回答 1 投票 0

函数必须具有通用接口,但必须根据传递的子类(在不知道它们是什么的情况下)表现出不同的行为-C ++

我正在写C ++。我有从基类继承的不同类(例如,A,B,C,D都从Z继承)。我想编写一个函数,该函数接受2个类型(超类型)Z的对象并执行...

回答 1 投票 1

[C ++从多重继承进行转换;源不是多态的

我是C ++的新手。我有两个纯抽象类(如接口),我从这两个纯抽象类派生了一个类。在一种情况下,我需要将派生的类指针上移到一个...

回答 1 投票 0

将一阶派生类铸造为二阶派生类-为什么起作用?

我只是从基类创建了两个派生类。然后创建一个派生类的对象并转换为基类。然后从基类转换为第二个派生类,我是...

回答 1 投票 0

C ++将一个派生类转换为另一类。如何工作?

我只是从基类创建了两个派生类。然后创建一个派生类的对象并转换为基类。然后从基类转换为第二个派生类,我是...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.