需要一些关于Qt::operator的解释吗

需要一些关于Qt::operator的解释吗,qt,operator-overloading,Qt,Operator Overloading,我是Qt的大人物,我参考了一些关于隐式和显式共享的教程,我看到了下面的文章 在代码部分,我无法理解以下运算符的功能 Contact& Contact::operator=(const Contact& other) { d = other.d; return *this; } 如果有人能解释它到底是做什么的,以及为什么它在代码中存在,那将是一个很大的帮助 谢谢各位 ~Tharanga他是。这样,当他说 c2 = c1; c2.d将与c1.d相同 它不是特定的。另请参

我是Qt的大人物,我参考了一些关于隐式和显式共享的教程,我看到了下面的文章

在代码部分,我无法理解以下运算符的功能

Contact& Contact::operator=(const Contact& other) {
  d = other.d;
  return *this;
}
如果有人能解释它到底是做什么的,以及为什么它在代码中存在,那将是一个很大的帮助

谢谢各位

~Tharanga

他是。这样,当他说

c2 = c1;
c2.d
将与
c1.d
相同

它不是特定的。另请参见此图。

此运算符是。在您编写以下内容时使用:

Contact c1;
Contact c2;
c2 = c1;

在您的例子中,赋值运算符只复制联系人的d成员,因此
c2.d
将与
c1.d

相同。实际上,在您的示例中,将调用复制构造函数。让我试着理解这一点。Contact是显式共享的,它的其他属性(如果有任何其他公共变量)是显式共享的,但是共享指针d是隐式共享的。我真的很感谢你的回复。再次感谢这个操作符重载,当将联系人分配给其他人时,只会分配d成员。所有其他成员都不会改变。