21xrx.com
2024-12-22 20:05:32 Sunday
登录
文章检索 我的文章 写文章
C++重载赋值运算符
2023-07-14 01:11:17 深夜i     --     --
C++ 重载 赋值运算符 运算符重载 操作符重载

C++是一门面向对象的编程语言,支持类和对象,而赋值运算符是C++中最基本的运算符之一,它用于将一个值赋给变量或对象。但是,在某些情况下,使用默认的赋值运算符并不像所期望的那样工作。在这些情况下,可以使用重载赋值运算符。本文将介绍C++重载赋值运算符的使用方法。

重载赋值运算符是将一个对象赋值给另一个对象时所调用的特殊的函数。在C++中,可以通过重载赋值运算符来重新定义对对象的赋值,以便使它在特定的场景下能够满足我们的需求。重载赋值运算符使用关键字“operator=”,并返回一个引用类型。

下面是一种重载赋值运算符的语法格式:


class classname

{

public:

  classname & operator=(const classname &); 

};

classname & classname::operator=(const classname &obj)

{

  //代码

  return *this;

}

在上面的代码中,我们使用了“classname & operator=”函数,其中classname是类的名称。赋值运算符的返回类型为类的引用,该引用表示赋值之后的对象。重载赋值运算符函数的参数是一个const引用,该引用表示将要被赋值的对象。

下面是一个使用重载赋值运算符的示例:


#include <iostream>

using namespace std;

class Person {

private:

  int age;

public:

  Person(int a)

    age = a;

  

  Person& operator=(const Person& obj) {

    age = obj.age;

    return *this;

  }

  int getAge() const

    return age;

  

};

int main() {

  Person p1(18);

  Person p2(25);

  p2 = p1;

  cout << "P1's age is " << p1.getAge() << endl;

  cout << "P2's age is " << p2.getAge() << endl;

  return 0;

}

在上述示例中,我们首先声明了一个Person类,并在该类中定义了一个重载赋值运算符函数“operator=”来实现对象赋值。该函数会将其它对象的age属性赋值给当前对象的age属性,最后返回当前对象的引用。

我们在main函数中声明了两个Person对象p1和p2,并将p1对象的age属性赋值给p2对象的age属性。最后,我们使用getAge()函数来打印出两个Person对象的age属性。

总结:重载赋值运算符是C++中使用广泛的概念之一。它是用于将一个对象的内容赋值给另一个对象的特殊函数。我们可以根据实际应用场景来定义我们自己的重载赋值运算符函数,以满足我们的需求。

  
  

评论区

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