• c++之类类型转换


      数据类型转换在程序编译时或在程序运行实现

        基本类型 ←→ 基本类型

        基本类型 ←→ 类类型

        类类型 ←→ 类类型

      类对象的类型转换可由两种方式说明:

        构造函数  转换函数

        称为用户定义的类型转换或类类型转换,有隐式调用和显式调用方式

     1 class  X    
     2 { // ……
     3   public :
     4       X ( int ) ;
     5       X ( const  char * , int = 0 ) ;
     6 };
     7 void  f ( X  arg ) ;
     8     :
     9    X  a = X( 1 ) ;        // a = 1,调用构造函数X(int),把1转换成X类类型后赋给对象a,也称X(1)为类X的类型常量
    10    X  b = "Jessie" ;        // b = X ( "Jessie" , 0 ),调用构造函数X(const char*,int =0),把字符串转换成X类类型后,赋给b;
    11    a = 2 ;            // a = X ( 2 ),隐式调用构造函数X(int),把2转换成X类类型之后赋给对象a,
    12    f ( 3 ) ;            // f ( X ( 3 ) ),隐式调用构造函数X(int),对实参做类类型转换,然后进行参数结合
    13    f ( 10 , 20 ) ;        // error ,找不到匹配的构造函数,转换失败
    //注:这样的转换都是由系统自动完成的

    2.类类型转换函数:

    带参数的构造函数不能把一个类类型转换成基本类型
    类类型转换函数是一种特殊的成员函数,提供类对象之间

    显式类型转换的机制

    语法形式:

      X :: operator  T ( )

      {  ……

             return   T 类型的对象 

      }

    功能:将类型 X 的对象转换为类型 T 的对象

    • T 可以是预定义类型,也可以是用户定义类型
    ·  函数没有参数,没有返回类型,但必须有一条 return 语句,返回 

        T 类型的对象

    • 该函数只能为成员函数,不能为友元 
  • 相关阅读:
    第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
    POJ1050 To the Max 最大子矩阵
    POJ1259 The Picnic 最大空凸包问题 DP
    POJ 3734 Blocks 矩阵递推
    POJ2686 Traveling by Stagecoach 状态压缩DP
    iOS上架ipa上传问题那些事
    深入浅出iOS事件机制
    iOS如何跳到系统设置里的各种设置界面
    坑爹的私有API
    业务层网络请求封装
  • 原文地址:https://www.cnblogs.com/Smart-Du/p/4331171.html
Copyright © 2020-2023  润新知