gpt4 book ai didi

c++ - 如何在输出参数中使用基类

转载 作者:行者123 更新时间:2023-11-28 07:52:32 25 4
gpt4 key购买 nike

假设我有这样的代码:

class B {}
class D : class B {}

void MakeD(int params, D** out, int* status_out);

今天我这样调用它:

B* b;
if (use_d) {
D* d;
MakeD(params, &d, &status)
b = d;
} else...

是否有一种更简洁的方法来避免使用单独的“d”对象,但又不会失去现有的类型安全性(即没有 reinterpret_cast)?

最佳答案

有什么理由不能只修改 MakeD() 方法以返回新的 D 而不是传递指向 D 的指针吗?

即。

D* MakeD(int params, int* status_out);

...

b = MakeD(params, &status);

或者 MakeD() 方法是其他人 API 的一部分吗?

关于c++ - 如何在输出参数中使用基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13464507/

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