为什么';这';在这种情况下需要取消引用吗?(指派操作员) 这是一个例子,从Bjarne Stroustrup的“C++的第二版”中提取的一个用户定义的向量类的拷贝赋值: Vector& Vector::operator=(const Vector& a) // copy assignment { double* p = new double[a.sz]; for (int i=0; i!=a.sz; ++i) p[i] = a.elem[i]; delete[] elem; // delete old elements elem = p; // here elem is the vector's data holding member array sz = a.sz; return *this; }

为什么';这';在这种情况下需要取消引用吗?(指派操作员) 这是一个例子,从Bjarne Stroustrup的“C++的第二版”中提取的一个用户定义的向量类的拷贝赋值: Vector& Vector::operator=(const Vector& a) // copy assignment { double* p = new double[a.sz]; for (int i=0; i!=a.sz; ++i) p[i] = a.elem[i]; delete[] elem; // delete old elements elem = p; // here elem is the vector's data holding member array sz = a.sz; return *this; },c++,class,operator-overloading,this,assignment-operator,C++,Class,Operator Overloading,This,Assignment Operator,“This”是一个指针,因此取消对它的引用实际上应该为我们提供它所指向的当前对象。当需要对该对象的引用时,对象如何被接受为返回值?这是一个指向指定对象的指针。函数返回对该对象的引用。因此您需要o取消引用指针以获取对象的左值。这是一种指针类型。函数返回对向量的引用。。要将指针转换为左值,需要取消引用 “This”是一个指针,因此取消对它的引用实际上应该为我们提供它所指向的当前对象 是的 在期望引用对象的情况下,对象如何被接受为返回值 与任何其他引用的方式相同 int x = 3; int&

“This”是一个指针,因此取消对它的引用实际上应该为我们提供它所指向的当前对象。当需要对该对象的引用时,对象如何被接受为返回值?

这是一个指向指定对象的指针。函数返回对该对象的引用。因此您需要o取消引用指针以获取对象的左值。

这是一种指针类型。函数返回对
向量的引用。
。要将指针转换为左值,需要取消引用

“This”是一个指针,因此取消对它的引用实际上应该为我们提供它所指向的当前对象

是的

在期望引用对象的情况下,对象如何被接受为返回值

与任何其他引用的方式相同

int x = 3;
int& ref = x;  // just fine
在这种情况下,为什么需要取消对“this”的引用?(赋值运算符)


需要解引用指针以获取指针对象与函数返回引用类型关系不大,只是说如果没有解引用指针,则必须返回指针,因此返回类型必须是
Vector*

,因此当函数的返回类型为X&时,返回的st函数的实现只需要提供一个X类型的对象,@ tDORARION C++中没有语法工具,意思是“变量x的引用”。转换是隐含的,没有歧义。换句话说,“是”。技术上,引用不给你一个引用类型的表达式;它给你一个引用[HAH]的LValk。对于原始值,该表达式的类型是
Vector
(不是
Vector&
)。但是引用是有趣的老东西…您更改了错误的句子:P函数返回一个
Vector&
,因为这是返回类型。但是您说取消引用指针会产生一个引用,这是不正确的。(虽然这没什么大不了的)这就是为什么我会写“我想是固定的”。“这样,我确信我理解人们告诉我的。好的,这次应该是真的。请再次检查,确保我没有再搞砸。价值类别没有完全涵盖去参考的功能,但足够接近。不,你需要正确地做:d。无论如何,感谢友好的反馈。