- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
以下代码抛出 std::bad_cast
struct Foo {
void foo () {}
};
struct Bar {
Bar () {
dynamic_cast <Foo &> (*this) .foo ();
}
virtual ~ Bar () {}
};
struct Baz : public Foo, public Bar {
};
int main ()
{
Baz b;
}
我记得曾经读过 dynamic_cast 如何进行性能权衡,因为“它遍历了完整的继承格”以便正确评估。编译器在这里需要做的是先向上转换,然后再向下转换。
是否可以完成上述工作或者我是否需要添加虚拟 Foo* Bar::as_foo()=0;
?
最佳答案
Foo 中没有虚函数,所以 dynamic_cast 完全不得不失败。需要有一个虚函数。在施工期间这样做也是一个坏主意,因为您会遇到施工顺序问题。
关于c++ - 为什么在多重继承期间我不能 dynamic_cast "sideways"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641398/
实际上,我正在编写一个小型太空射击游戏(2.5D,俯 View )。玩家可以沿着 XZ 轴移动并通过右侧的迷你摇杆(游戏 handle )旋转宇宙飞船或查看光标位置(键盘 + 鼠标)。 因此,运动和旋
在图书页面上,用户点击目录中的第 1 章。 在第 1 章页面,用户点击下一章转到第 2 章。 用户可以点击下一章任意次数来浏览章节。 在任何章节页面,如果用户点击后退 按钮,用户应该返回到图书页面,而
我在 CSS 旋转和定位方面遇到了一些问题。 我想将网页的标题横向放置(旋转 -90°,因此它从左到右 -> 从下到上阅读)并贴在网页的右下角。 这是我目前使用的 CSS: .gallerytitle
这个问题在这里已经有了答案: Relative imports in Python 3 (30 个答案) 关闭 7 年前。 我的文件结构如下 math/ snippets/
以下代码抛出 std::bad_cast struct Foo { void foo () {} }; struct Bar { Bar () { dynamic_ca
我有以下情况,有一个 div,我正在向其中动态添加内容。到目前为止,如果添加的内容太多,它会溢出到 div 之外或拉长 div。这两种情况都是我所不希望的。 我想要做的是在单独的列中溢出侧面的内容。我
我正在使用 Bootstrap 的模式来进行一系列评论。因此,我将一堆模态放入列表中,并在用户查看当前模态后显示下一个模态。 问题:如何更改模态,使当前模态向左滑出,新模态从右侧滑入? 我希望这是一个
我试图在多个方向上创建多个横向背景颜色,例如 here . 我尝试使用 background: -webkit-linear-gradient(top left, white,white 80%,#0
我在组件中嵌套了点击事件处理程序: class ListItem extends React.Component { ... render() { return (
我想将一个 Rust 程序拆分成多个文件,但是 mod 的使用不允许我从 main.rs 以外的文件引用同一目录中的文件。 例如,如果我在同一个文件夹中有main.rs、game.rs和matrix.
我对 C++ 没有那么多经验,但正在努力学习。 以下示例由“相关”类的层次结构组成: Child 是 Parent1 和 Parent2 的 child Parent2 是 VirtualGrandP
我有一个 TD/DIV,里面有一些文字。我使文本显示在 TD/DIV 的中心。但我希望文本使用 writing-mode: sideways-lr 居中.我怎样才能做到这一点? div { wid
我在 OpenGL 中编写了一个 3D 环境,您可以在其中向前/向后移动并环顾四周(上/下左/右),但是我无法弄清楚如何向左或向右侧移。 我正在使用 gluLookAt,我的前进代码是 GLfloat
我想在屏幕上移动一个 div。 div 最初设置为 width:100%。但是当转换开始时,div 的大小似乎缩小了(蓝色边框刚好环绕在文本周围)。为什么会这样? 之前 之后 这是我的代码示例 htt
我真的花了几个小时试图解决这个问题,谷歌搜索解决方案,但我做不到。 我有一辆车,它是一辆手推车,所以没有悬架(技术上有,但值接近 0,以模拟轮胎)。车辆有一个刚体,子对象包含 4 个车轮碰撞器(和模型
我一直认为 SQL 中的连接是两个表之间的某种链接。 例如, select e.name, d.name from employees e, departments d where employe
我是一名优秀的程序员,十分优秀!