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

标签 c++ inheritance output-parameter

假设我有这样的代码:

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/

相关文章:

c++ - 半鲁棒报纸栏抽取

c++ - Qt在不在主类中的函数中执行SQL命令

c++ - 如何使用 Box2D 在 cocos2d iPhone 上调整 b2CircleShape 的大小

java - 有人可以解释如何在不调用的情况下调用某些方法吗?

c# - 在 WCF 服务的方法中使用输出参数是不好的做法吗?

C++ 多维数组生成段错误?

c++ - 对象切片如何导致内存损坏?

c++ - 如何为可覆盖方法提供默认实现?

java - 列表作为Java中的输出参数

sql-server - ADODB 是否在具有可选输入参数的输出参数上失败?