我使用外部庫,並且我有一個類從另一個類繼承與下一個功能修改參數不參考
空隙IOCallback ::公開(常量字符*文件名,布爾ISOPEN)
我需要修改布爾,我不能修改代碼來使用它像引用。
有反正我可以做到這一點嗎?
我使用外部庫,並且我有一個類從另一個類繼承與下一個功能修改參數不參考
空隙IOCallback ::公開(常量字符*文件名,布爾ISOPEN)
我需要修改布爾,我不能修改代碼來使用它像引用。
有反正我可以做到這一點嗎?
我需要修改布爾,我不能修改代碼來使用它像引用。
如果你的意思是這樣的...
bool b = false;
IOCallback callback;
callback.Open(filepath, b);
if(b) { // <- will never actually evaluate to anything but false
// do something
}
...那麼,好吧,你不能。該函數接收其參數的副本。您可以自由修改函數內部的參數,但是您無法以調用方能夠看到所述修改的方式進行操作。
我質疑這個請求背後的推理。如果你編寫了代碼,那麼你可以修改它,或者添加另一個重載版本來做你需要的。如果你沒有編寫代碼並且不能修改它,那麼它從來沒有打算首先改變它的參數,那麼會得到什麼?
您可以修改您的方法收到的本地副本,但是沒有任何機制可以讓您修改調用者的副本AFAIK。 – jpm
什麼代碼不能修改?你顯然必須修改調用者對返回的bool做些什麼,你顯然必須修改函數來返回一個bool。它只是你不能修改的函數參數類型嗎? –