21xrx.com
2024-12-22 20:31:36 Sunday
登录
文章检索 我的文章 写文章
C++ 的等号重载
2023-07-13 13:42:39 深夜i     --     --
C++ 等号 重载

C++ 中的等号(=)是一个赋值运算符,用于将一个值赋给变量。在某些情况下,我们希望自己定义的类能够使用等号运算符完成赋值操作。

在 C++ 中,我们可以通过运算符重载来自定义一个类的等号运算符。重载等号运算符的基本语法如下所示:


class MyClass {

 public:

  // 定义等号运算符重载函数

  MyClass& operator=(const MyClass&);

};

在上面的代码中,我们定义了一个类 MyClass,然后定义了一个等号运算符重载函数 operator=()。该函数使用一个 MyClass 类型的参数,并返回一个 MyClass 类型的引用。

在等号运算符重载函数内部,我们需要实现将右侧操作数的值赋值给左侧操作数的操作。代码实现如下所示:


MyClass& MyClass::operator=(const MyClass& obj) {

  // 检查是否是自我赋值

  if (this == &obj)

    return *this;

  // 执行赋值操作

  // ...

  return *this;

}

在上述代码中,我们首先检查右侧操作数是否与左侧操作数相同,如果相同,则直接返回左侧操作数的引用。如果不相同,则执行赋值操作并返回左侧操作数的引用。

需要注意的是,等号运算符重载函数应该保证满足赋值花括号函数的要求。也就是说,它应该把右侧操作数的值赋给左侧操作数的对象,并返回一个指向左侧操作数的引用。

在实际编程中,我们可以通过等号运算符重载函数自定义一个类的赋值操作,实现更为灵活的对象赋值。

  
  

评论区

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