永发信息网

C++ f(CString &str)与f(CString str)区别?

答案:1  悬赏:10  手机版
解决时间 2021-04-05 00:20
  • 提问者网友:放下
  • 2021-04-04 02:19
C++ f(CString &str)与f(CString str)区别?
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-04-04 03:10
f(CString &str)——调用时传给f的是类CString的对象的引用,在f中所有对这个引用的操作都会永久地保留下来;而f(CString str)在调用时传给f的是类CString的对象的拷贝,所以在f中所有对这个拷贝的操作就不会影响原对象的值。前者实际上使用的是指针,只是写法上与拷贝传值一样,很方便。哪个在堆里,哪个在栈里,或都在堆里或栈里,我也不知道,也觉得没有必要知道;我不知道,从来也没有影响过我写程序……追问是不是说我Getbuffer()所获得的内存“&str”是原字符串;而“str”是原字符串的拷贝,也就是说当退出函数时,内存不复存在?我没调试,看似不对,我觉得非常有必要搞清是类的数据放在了栈上还是类的地址放在了栈上。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯