我无法在标题中清楚地说明我的问题,但这确实是。带指针参数的函数
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