修改参数而不参考

时间:2012-10-04 19:30:14

标签: c++

我正在使用外部库,我有一个继承自另一个类的类,具有下一个函数

void IOCallback :: Open(const char * filename,bool isOpen)

我需要修改bool,我不能修改代码来使用它作为参考。

无论如何我能做到这一点吗?

1 个答案:

答案 0 :(得分:4)

  

我需要修改bool,我不能修改代码来使用它作为参考。

如果你的意思是这样......

bool b = false;
IOCallback callback;
callback.Open(filepath, b);
if(b) {  // <- will never actually evaluate to anything but false
    // do something
}

......那么,你不能。该函数接收其参数的副本。您可以自由地修改函数中的参数,但是您无法以调用者能够看到所述修改的方式执行此操作。

我质疑这个请求背后的原因。如果您编写了代码,那么您可以修改它或添加另一个重载版本来执行您需要的操作。如果你没有编写代码并且无法修改它,那么它从来没有打算首先改变它的参数,那么有什么可以获得?

相关问题