=运算符重载类对象为rvalue。 [英] = operator overloading for a class object as rvalue.

查看:97
本文介绍了=运算符重载类对象为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆