gpt4 book ai didi

c++ - 将指针数组转换为对象

转载 作者:行者123 更新时间:2023-11-30 01:31:54 25 4
gpt4 key购买 nike

如果 BA 的子类。

我在 main() 中有:

B** b = new B*[10];
... // some algorithm that does b[i] = new B(..);

所以我有一个指向对象 B 的指针数组。

然后我有一个函数:

void f(A** foo);

如果在 main 中,我执行:f(b); 我收到警告,但显然如果我执行:f((A**)b); ,我没有。

(A**) 有点讨厌。我想知道 C++ 中是否有更优雅的方法,至少可以像 dynamic_cast 一样进行类型检查。

我希望 foo 对类型 A 或子类的对象数组进行排序(仅使用交换).. 所以制定一个通用的排序算法。我希望现在你能更好地理解我的问题。

最佳答案

A**B** 是两种完全不同的类型。仅仅因为存在从 B*A* 的隐式转换并不意味着存在从 B** 的相同转换A** 请参阅此常见问题解答 Converting Derived* → Base* works OK; why doesn't Derived** → Base** work?了解更多详情。

关于c++ - 将指针数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2486056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com