别跟我说 return *this 表示返回当前对象,return this 表示返回当前对象的地址(指向当前对象的指针)。 正确答案为:return *this 返回的是当前对象的克隆或者本身(若返回类型为A,则是克隆,若返回类型为A&,则是本身)。 return this 返回当前对象的地址(指向当前对象的指针),下面我们来看看程序: 1 #include <iostr...
别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针)。 正确答案为:return *this返回的是当前对象的克隆(当然, 这里仅考虑返回类型为A, 没有考虑返回类型为A& )。return this返回当前对象的地址(指向当前对象的指针), 下面我们来看看程序吧: 1 2 3 4 5 6 7 8 9 ...
this 代表指向实例化的一个对象。(注意静态成员和函数是没有this指针的)所以要你自己实际用了,比如返回该类实例化的对象(*this),或者对象的地址(this)比如重载赋值操作符,+ - 等等 返回对象的地址(this)或者返回一个对象的拷贝(*this)总的来说你只要记住this 代表指向实例化的一个对象。
返回对象本身。每个实例化出来的对象都有个this指针指向自己,因此return *this可返回对象自身。
return *this; 就是返回当前对象。因为成员函数中this就是当前对象指针,解引用也就是获取当前对象。 比如,有如下代码: class Object{public: Object instance() { return *this; }};那么,obj1 = obj2.instance(); 就和,obj1 = obj2; 等效。
return *this; 只会把对象本身当做类成员函数的结果,进行传参数或赋值 拷贝构造函数主要在以下三种情况下起初始化作用:1. 在声明语句中用一个对象初始化另一个对象;2. 将一个对象作为参数按值调用方式传递给另一个对象时生成对象副本;3. 生成一个临时对象作为函数的返回结果。第三种情况是这样的:...
返回本身对象。每个类的成员方法种都有一个指向自身对象的this指针,那么*this就表示本身对象。
因为C++规定了前置++的结果要能作为左值,所以必须返回*this
返回调用对象自身 char ch[] = "abcdefgh\0";String str1, str2 (ch);str1 = str2; // return *this 相当于返回str1
看你想返回什么了,估计你的返回值是引用,既然是引用,那么返回this就是错误的(你实际上是想引用指针的值,而不是引用指针本身), 对指针的引用也是要再解引用才行的.如果你返回This,那么你在外部使用这个返回值时要"*变量名"才能访问,返回引用的话直接"变量名"就行了.更符合C++语法,重载本身就是为了...