我有一個方法,它接受一個向量的引用,該向量包含指向對象的指針作爲第一個參數,並引用指向同一類型對象的指針作爲第二個參數。在該方法中,我想將第二個參數引用的位置更改爲向量中的對象。然後讓方法的調用者使用已更改的指針,將新位置作爲其目標。但是,我目前嘗試執行此操作失敗。無法將指針位置設置爲C++中另一個指針位置的指針位置
問題的方法:
void execute(std::vector<CanvasElement*>& elements,CanvasElement*& lastFocused)
的方式,我沒有成功嘗試設置值指出例子由lastFocused:
lastFocused = elements[0];
*lastFocused = *elements[0];
在回覆中闡述以下評論: 的失敗的原因是函數內部的更改不會在該函數的範圍之外反映出來。
我可以通過在應用程序運行期間打印存儲在每個指針中的地址來確認該值是否確實在執行中設置,但是在執行之外它沒有被更改。
第一個看起來恰到好處。 – 2011-04-06 06:31:05
你正在得到一個編譯器錯誤,或者函數內部的指針改變沒有反映在外面?即你能詳細說明什麼是失敗? – Naveen 2011-04-06 06:33:29
我已經添加了詳細說明。 – XBigTK13X 2011-04-06 18:46:15