课程
/后端开发
/C++
/C++远征之封装篇(下)
老师的课讲的矛盾:“this的本质是指向对象本身的地址”。 既然如此,代码返回的*this 就应该是本来的对象Arr,怎么却变成了新的对象????这不矛盾吗
2016-05-20
源自:C++远征之封装篇(下) 4-8
正在回答
this是指针,解引用后的*this不是指针,是一个对象。原本返回类型写成Array的话,函数返回是值传递,返回的是一个新的对象,这个对象的内容和*this是一样的,但他们不是同一个对象(就是在内存里新开了一块地方,再把*this的内容拷贝到这里)。而返回类型改成Array&后函数返回是引用传递,返回的是对象本身,就是*this
finalnimbus 提问者
qq_随缘_89
慕勒2555553
不是新的对象吧,就是this指向的对象本身吧
举报
封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通