重载()运算符和重载强制类型转换

Posted claireyuancy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重载()运算符和重载强制类型转换相关的知识,希望对你有一定的参考价值。

// 研究了半宿。最终弄清楚了

// 写了这段測试代码能够非常好的演示效果


class CConvert
{
public:
        CConvert(){m_nValue = 10;} 

        // 重载()运算符
        int operator ()();

        // 重载int强制类型转换
       operator int();

protected:
private:
     int m_nValue;
};

 

int CConvert::operator ()()
{
    return m_nValue;
}

 

CConvert::operator int()
{
    return m_nValue;
}

 

void SetValue(int nValue)
{
    int nTest = nValue;
}


int main()
{

     CConvert convert;
     SetValue(convert);  // 调用强制类型转换重载符
     SetValue(convert()); // 调用重载之后的括号运算符
     return 0;
}

以上是关于重载()运算符和重载强制类型转换的主要内容,如果未能解决你的问题,请参考以下文章

C++ 强制转换运算符重载和多态性

为枚举类重载强制转换运算符

重载强制转换运算符时的 C++ 歧义

在 C# 中是不是可以通过以下方式重载泛型强制转换运算符?

c ++:强制转换运算符与分配运算符与转换构造函数优先级

14:操作重载和类型转换