zoukankan      html  css  js  c++  java
  • c++ 显示转换(类型转换运算符)

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

    类型转换运算符(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;
    }
  • 相关阅读:
    Selenium系列(十五)
    Selenium系列(十四)
    Selenium系列(十三)
    Selenium系列(十二)
    Linux常用命令
    Linux
    Linux常用命令
    Linux常用命令
    Mysql常用sql语句(2)- 操作数据表
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/tongyishu/p/13289084.html
Copyright © 2011-2022 走看看