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

2021-04-19 09:30

阅读:677

标签: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 // 并无 Integer 的 // 输出如下:
    // Integer(int data)
    // operator int() const
    // 3
    return 0;
}

 

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

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

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


评论


亲,登录后才可以留言!