首页 > 编程语言 > 详细

C/C++运算符

时间:2016-01-16 20:59:44      阅读:188      评论:0      收藏:0      [点我收藏+]

  1、转换运算符:一种特殊的类成员函数。定义该运算符后,编译器将在可以使用内置转换的地方自动调用它

class SmallInt
{
public:
    SmallInt(int i = 0) : m_val(i)
    {
        if (i < 0 || i > 255)
            throw std::out_of_range("Bad SmallInt initializer");
    }

    // 转换函数必须是成员函数,通常定义为const
    operator int() const { return m_val; }
private:
    std::size_t m_val;
};

int main()
{
    SmallInt si(12);
    double dval = 4.5;

    // si转换成int,再转换成double
    if (si >= dval) {}
    // si转换成int,再转换成bool
    if (si) {}
    cout << si << endl; // si转换成int
    // 3.541先被转换成int,再用int构造SmallInt对象
    SmallInt si2 = 3.541;
    int ival = static_cast<int>(si2) + 3; // 显式转换

    return 0;
}

  另外,语言只允许一次(自动)类类型转换。即,(只)通过转换运算符,若C类型可以转换为B类型,B类型可以转换为A类型,则C类型不可以直接转换为A类型。

 

 

  参考资料:

  《C++ Primer》

 

 

不断学习中。。。

C/C++运算符

原文:http://www.cnblogs.com/hanerfan/p/5136038.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!