我似乎无法在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
之间有什么区别?
答案 0 :(得分:0)
我在重载运算符时看到了它的提及,但是大多数在线资源都没有解释他们在示例中使用它的关键字“运算符”。
operator关键字声明一个函数,指定在应用于类的实例时operator-symbol的含义。这给操作员提供了多个含义,或者“重载”它。编译器通过检查运算符的类型来区分运算符的不同含义。
来源:MSDN website