【发布时间】:2011-10-13 22:43:06
【问题描述】:
标题基本上说明了一切。我主要想这样做,以便我可以创建一个对象(例如,自定义字符串对象),该对象可以初始化其他 API 中其他函数的参数。这是我试图让自定义整数类工作的示例:
#include <iostream>
using namespace std;
class test
{
public:
int member;
test(int i) : member(i) {}
friend int &operator=(int &i, test t);
};
int &operator=(int &i, test t)
{
return (i = t.member);
}
int main()
{
int i;
test t = 90;
cout << (i = t);
return 0;
}
很遗憾,我收到一条错误消息,指出 operator= 必须是成员函数。我了解 C++ 标准的目标是防止实现赋值运算符的静态和非成员重载,但是还有其他方法可以做到这一点吗?感谢您的任何帮助/建议!
【问题讨论】:
标签: c++ overloading operator-keyword friend assignment-operator