我正在使用 AWS SDK 为 C++ 访问 S3 存储桶。 这是一个更大的虚幻引擎项目的一部分。 因此,AWS SDK 使用虚幻引擎分配器,通过Aws::Utils::Memory::MemorySystemInterface 。 当我的一个请求超出 scope(并被销毁)时,我在Aws::De ...
我正在使用 AWS SDK 为 C++ 访问 S3 存储桶。 这是一个更大的虚幻引擎项目的一部分。 因此,AWS SDK 使用虚幻引擎分配器,通过Aws::Utils::Memory::MemorySystemInterface 。 当我的一个请求超出 scope(并被销毁)时,我在Aws::De ...
如果A没有虚函数,为什么要编译? class A { int a = 42; }; class B { void* f() { return dynamic_cast<A*>(this); } virtual void my_vir ...
如果有一种方法旨在将具有特定类型的对象放入另一个列表中,我如何在dynamic_cast中使用用户定义的参数? 我知道,我不能直接在dynamic_cast中使用 std::string 参数,但是有更好的解决方案吗? ...
我需要一种廉价的方法来迭代两个向量的组合...... 我有两个我正在尝试在物理模拟中使用的类, A和B继承自A 。 这个想法是: std::vector<A*> items; // contains As and Bs for (A* item : items) { item ...
我认为p和p2将具有o的地址,因为强制转换成功。 我不明白为什么p和p2具有相同的内存地址。 谁能解释我为什么? ...
我试图了解动态类型转换。 如何使用 dynamic_cast 正确实现 DrawAnimals 和 Talk To Animals 功能? DrawAnimals 绘制可以绘制的动物。 这样的动物实现了 Drawable 接口。 TalkToAnimals 与会说话的动物进行对话,即它们实现了 ...
我对教授写的一行代码有疑问。 这是完整的代码。 相关的 function 是 class Gui 有一个std::list<const AbstractButton*> Buttons和 function std::vector<AbstractButton*> remov ...
我有兴趣了解,一般来说,运行时如何检查基础 class 在使用 dynamic_cast 应用向下转换时是否实际上指向派生的 class。 我知道多态 class 的每个虚拟表也包含 RTTI(以 type_info 指针的形式)。 ...
我最近在 C++ 中了解了向上转换和向下转换。 但是,在阅读有关向下转换的过程中,我提出了一些问题。 假设我有两节课 我的问题如下: 如果我创建一个 object Derived d(1) ,向上转换到 Base class,然后向下转换回 Derived class,是否保留'mem==1'? 我 ...
我正在尝试了解 C++ 中的动态转换。 所以我开发了 2 个类来测试一些与动态转换相关的东西: 方法f2()返回在父 Class Entity中定义的 x。 这是main的: 调用p->f2()时抛出异常,特别是在return x;行它说: 抛出异常:读取访问冲突。 这是空指针。 这里奇怪的是 ...
在 static_cast、dynamic_cast、reinterpret_cast 和 const_cast 中,只有 static_cast 能够返回所需类型的 object,而其他类型只能返回表示的指针或引用。 为什么会这样? 例子: 对于dynamic_cast: ...
我正在尝试使用 lambdas 找到一种方法来查找 Base class 类型的向量中有多少特定派生类。 帐户是基本抽象 class,当前帐户是派生 class。 我收到错误no operator.= matches these operands".但是,我认为动态转换可以返回 null ptr。 ...
在 C++ 中编写我的第一个大项目时,我遇到了一个单独使用谷歌和文档无法解决的问题。 我无法弄清楚为什么这个 dynamic_cast 会失败,即使 r 指向 MeshRenderer Object。 class RenderEventConsumer 有一个虚方法,是 MeshRenderer ...
谁能告诉 dynamic_cast 的确切检查是什么? 怎么会有这样的情况,我可以向孙子低头,而不能向儿子低头? (使用普通 inheritance 而不是钻石) ...
考虑以下类结构: 这段代码工作正常,只要孩子在转换之前和之后具有相同的模板类型。 如果不是这种情况,它当然会失败。 如果它们有不同的类型并且我提供了继承模板的特定类型,它会起作用,但是我有大量可能的模板。 我的第一反应是添加另一个模板: 这将给出错误“无法推断模板参数”,因为编译器不知道它是 ...
以下代码片段在dynamic_cast期间导致分段错误。 有人可以向我解释为什么会发生这种情况吗? #include <cassert> #include <cstdint> uint8_t buffer[32]; class Top { public: virt ...
语境 我正在尝试设计一个模块化且易于扩展和测试的建模框架。 (我试图遵循开放/封闭、依赖注入和组合而不是继承原则)。 我有一个模型对象的层次结构,其中包含方法,一些是所有通用的,另一些是特定于某些模型的。 我还有一系列估计方法,它们适用于模型的各种子集。 每个 estimator 类都需要一个 ...
我有 C++ Primer 第 5 版中的这段文字: dynamic_cast<type*>(e) dynamic_cast<type&>(e) dynamic_cast<type&&>(e) 在所有情况下, e的类型必须 ...
我们使用dynamic_cast运算符将指针或对基类型的引用安全地转换为指针或对派生类型的引用。 那么如何检查dynamic_cast返回的是有效引用还是无效引用呢? - 对于指针,只要我们将指针与nullptr值进行比较就可以了,但是对于引用如何呢? ...