码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 显示转换(类型转换运算符)

时间:2020-07-12 18:58:04      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:public   类型   div   形参   类型转换函数   main   函数类型   code   允许   

由转换造函数进行的类型转换称为隐式转换,由类型转换运算符进行的转换称为显式转换

类型转换运算符(conversion operator)是类的一种特殊成员函数,它负责将一个类类型的值显式地转换成其他类型。类型转换函数的一般形式如下:

              operator type() const;

其中type表示某种类型,类型转换运算符可以面向任意类型(除了void之外)进行定义,只要该类型能作为函数的返回类型。因此我们不允许转换成数组或函数类型,但允许转换成指针或引用类型。类型转换类型既没有显式的返回类型,也没有形参,而且必须定义成类的成员函数。

类型转换符通常不应该改变待转换对象的内容,因此类型转换运算符一般被定义成const成员。

示例:

class Integer {
public:
    int data;
    Integer(int data)
    {
        this->data = data;
        std::cout << "Integer(int data)" << std::endl;
    }
    operator int() const
    {
        std::cout << "operator int() const" << std::endl;
        return data;
    }
};

int main()
{
    Integer v1(3);
    std::cout << v1 << std::endl; // 并无 Integer 的 << 重载,先将 v1 通过 operator int() const 转换成 int 类型,再输出
    // 输出如下:
    // Integer(int data)
    // operator int() const
    // 3
    return 0;
}

 

c++ 显示转换(类型转换运算符)

标签:public   类型   div   形参   类型转换函数   main   函数类型   code   允许   

原文地址:https://www.cnblogs.com/tongyishu/p/13289084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!