我要重载一个类的等号运算,使得能够进行像下面这样的操作:
int iVal = Obj;我本来想这样写,(用全局函数)
int operator=(int iVal,CObj obj)
{
//....
}可编译老是有错,怎么搞的?
int iVal = Obj;我本来想这样写,(用全局函数)
int operator=(int iVal,CObj obj)
{
//....
}可编译老是有错,怎么搞的?
调试欢乐多
int iVal=Obj.GetValue();
如果你想重载=,应该如下:
CYourClass newClass=Obj;函数可以写成
h:
CYourClass operator=(CYourClass obj);
cpp:
CYourClass ::operator=(CYourClass obj)
{
this.a=obj.a;
this.b=obj.b;
//.....
//相当于把所有的变量初始化一遍
}
{
...
}
int operator int() const
{
...
};
};这样就可以通过:CObj obj;
int i = obj;
但是像
int operator+ (int iVal ,CObj obj)
{
//...
}
就没有问题呀?
你说的有道理,,,,!~~不过,为什么operator=不可以呢?
some_class& operator= (const some_class& source)
assignment operator '=', class member access operator '->', subscripting operator '[]', and function call operator '( )'.