C ++关键字"运算符="

时间:2015-08-29 20:14:49

标签: c++

我似乎无法在C ++中找到关键字operator=的简单解释或示例。

e.g

#include <iostream>
using namespace std;

class A {};

class B {
public:
  // conversion from A (constructor):
  B (const A& x) {}
  // conversion from A (assignment):
  B& operator= (const A& x) {return *this;}
  // conversion to A (type-cast operator)
  operator A() {return A();}
};

int main ()
{
  A foo;
  B bar = foo;    // calls constructor
  bar = foo;      // calls assignment
  foo = bar;      // calls type-cast operator
  return 0;
}

什么是operator=?我在重载运算符时看到了它的提及,但是大多数在线资源都没有解释他们在示例中使用它的关键字operator

有人可以解释一下吗?

我还想知道为什么关键字this前面有*this->*this之间有什么区别?

1 个答案:

答案 0 :(得分:0)

  

我在重载运算符时看到了它的提及,但是大多数在线资源都没有解释他们在示例中使用它的关键字“运算符”。

operator关键字声明一个函数,指定在应用于类的实例时operator-symbol的含义。这给操作员提供了多个含义,或者“重载”它。编译器通过检查运算符的类型来区分运算符的不同含义。

来源:MSDN website