21xrx.com
2024-12-22 23:52:54 Sunday
登录
文章检索 我的文章 写文章
C++中的“=”运算符重载
2023-06-22 18:02:04 深夜i     --     --
C++ 赋值运算符 重载

在C++ 中,“=”运算符被视为赋值运算符,用于将某个值或对象的值赋值给另一个对象。在C++ 中,我们可以通过重载“=”运算符来实现自定义对象的赋值操作。

“=”运算符重载允许我们为自定义数据类型定义赋值操作。例如,如果我们有一个名为“Person”的类,我们可以使用重载运算符“=”来实现对象之间的赋值。在这个例子中,我们可以重载“=”使其可以将一个Person对象的属性值赋给另一个Person对象,如下所示:


Person& Person::operator = (const Person &rhs) {

  if (this != &rhs)

    age = rhs.age;

    name = rhs.name;

    address = rhs.address;

  

  return *this;

}

在上面这个例子中,我们首先对“=”运算符进行了重载。此处我们没有使用默认的行为(即简单地将一个指针复制给另一个指针),而是通过引用传递了一个对象,并将其属性值赋值给调用赋值运算符的对象。

当我们给一个Person对象赋值时,我们可以像下面这样使用:


Person p1;

Person p2;

p1.age = 25;

p1.name = "John";

p1.address = "123 Main St.";

p2 = p1; // 调用"="运算符重载

在这个例子中,p2会被赋值为p1的属性值。注意,我们没有使用一个函数或方法来实现赋值操作,而是使用了重载运算符“=”来实现了这个操作。

在C++中,“=”运算符重载还可以用于其他自定义数据类型,如数组或向量。通过重载“=”运算符,我们可以自定义赋值操作的行为并使其符合我们的需求。

虽然“=”运算符重载能够帮助我们实现丰富的自定义行为,但需要谨慎使用。我们应该理解所有的“=”运算符重载操作,并确保它们符合我们的预期,以避免出现意外错误。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复