const Re bound(const UI& obj)你这个函数返回的是一个临时对象,返回的不是引用。
返回完跑出作用域临时对象就释放了啊。 [解决办法] const Re pU = bound(*PGO);其实是两次拷贝构造,只是编译器优化,所以只有一次 1.return=bound(*PGO),return是临时变量,会在该语句执行完成后释放(编译器应该是把这次优化了) 2.const Re pU=return,pU是函数局部变量,会在函数块执行完成后释放
const Re* pU = &(bound(*PGO));只有一次拷贝 1.return=bound(*PGO),return是临时变量,会在该语句执行完成后释放 2.const Re* pU = &return,只是获取变量的地址,不拷贝,但是这里的指针所指的是临时变量,所以是不能使用的 [解决办法] 临时变量,不使用时,编译器可以立即释放。 指针,引用,引用临时变量,不算使用。函数调用,表达式才算使用。