=运算符重载类对象为rvalue。 [英] = operator overloading for a class object as rvalue.
本文介绍了=运算符重载类对象为rvalue。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使其工作 int a = obA; 以下代码段。
class A
{
int m_a;
public :
int 运算符 =( int a)
{
m_a = a;
return 0 ;
}
};
int _tmain( int argc,_TCHAR * argv [])
{
A obA;
int a = obA;
return < span class =code-digit> 0 ;
}
解决方案
您可以实现类型转换运算符来实现这一点,例如
< pre lang =cs> class A
{
int m_a;
public :
A( int a = 0 ):m_a(a){}
operator int (){ return m_a;} // 类型转换操作符到'int'类型
};
int _tmain( int argc,_TCHAR * argv [])
{
A obA;
int a = obA;
return 0 ;
}
how to make it work the line int a = obA; in the following code snippet.
class A
{
int m_a;
public:
int operator =(int a)
{
m_a = a;
return 0;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A obA;
int a = obA;
return 0;
}
解决方案
You might implement the typecast operator to make that work, e.g.
class A { int m_a; public: A(int a=0):m_a(a){} operator int(){ return m_a;} // typecast operator to 'int' type }; int _tmain(int argc, _TCHAR* argv[]) { A obA; int a = obA; return 0; }
这篇关于=运算符重载类对象为rvalue。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文