假设我有这样的代码:
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/