0

我正在使用一个外部库,并且我有一个从另一个类继承的类和下一个函数

void IOCallback::Open(const char* 文件名, bool isOpen)

我需要修改布尔值,我不能修改代码来像参考一样使用它。

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

4

1 回答 1

4

我需要修改布尔值,我不能修改代码来像参考一样使用它。

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

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

......那么,好吧,你不能。该函数接收其参数的副本。您可以在函数内自由修改参数,但您无法以调用者能够看到所述修改的方式进行修改。

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

于 2012-10-04T19:40:33.760 回答