我無法在標題中清楚地說明我的問題,但這確實是。帶指針參數的函數
void DChatbox::ClampObject(DTextbox _txtbox) {
this->_txtbox = &_txtbox;
}
這只是創建_txtbox
沒有引用它的副本。
但這個工程。
void DChatbox::ClampObject(DTextbox* _txtbox) {
this->_txtbox = _txtbox
}
當我檢查第一個,它只是複製它,而不是引用它。這是爲什麼?
注:_txtbox
上DChatbox
被聲明爲這個DTextbox* _txtbox
DTextbox _txtbox應該是'DTextbox&_txtbox'.pointers和reference是不同的。 – Arpit
@Arpit:我想你的意思是'DTextbox _txtbox'應該是'DTextbox&_textbox',不是嗎?第二個例子是正確的,而第一個例子是分配一個局部變量的內存地址(在堆棧中)。 –
請小心,第一個版本將不起作用,因爲您正在取得一個局部變量的地址,該變量在函數結束時將被刪除。所以當函數結束時,'this - > _ txtbox'不會指向有效的'Dtextbox'對象 – lucasmrod