(C++)如何重新定义对象的"="运算符



我有一个A类对象。

class A[
{
int x;
string y;
float z;
....
}

然后我有一个int,叫做"整数";。如何重新定义=运算符以便执行类似的操作

int integer;
A obj = integer;

为了获得与非所有成员的构造函数调用相等的东西:

A obj(integer,",0); 

这有点顽皮,但是:

#include <iostream>
using std::cout;
using std::endl;
class A {
public:
int x;
A & operator=(int value) {
x = value;
return *this;
}
};
int main(int, char **) {
A obj;
obj.x = 5;
cout << "Initially: " << obj.x << endl;
obj = 10;
cout << "After: " << obj.x << endl;
}

运行时:

g++ Foo.cpp -o Foo && Foo
Initially: 5
After: 10

这就是你想要做的吗?注意,这是非常顽皮的。类A不是整数,将其赋值给int会让人感到困惑。C++可以让你做一些你可能不应该做的事情,这就是其中之一。

相关内容

  • 没有找到相关文章

最新更新