zoukankan      html  css  js  c++  java
  • c++类型转换函数

    一.opertor:本类类型--->其他类型(内置类型或其他类类型)

    c++中opertor可以将类类型转换为内置类型或其他类型,但反之不行

    operator 类型名( )
        {
            实现转换的语句:return 目标类型对象
        }

     1 class a
     2 {
     3     int aa;    
     4     double bb;
     5 public:
     6     a(int _a,int _b) :aa(_a),bb(_b){}
     7     operator int(){ return aa; }   //无返回值类型,无参数,返回目标类型的对象
     8 };
     9 void main()
    10 {
    11     a a(1,2.0);
    12     int b = a;    //a---->int
    13     cout << b << endl;
    14 }

     二.转换构造函数:其他类型--->本类类型

    通过转换构造函数可以将其他类型数据转换成本类类型,是一种隐式转换,只包含一个参数,若想拒绝此种转换,可在转换构造函数前加explict修饰

    注意:转换构造函数只能有一个参数。如果有多个参数,就不是转换构造函数。(当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数。)

     1 class a
     2 {
     3     int aa;    
     4     double bb;
     5 public:
     6     a(){};
     7     a(int _a,double _b) :aa(_a),bb(_b){}
     8     a(double _b):bb(_b){ aa = 0; }  //转换构造函数
     9     operator int(){ return aa; }   //无返回值类型,无参数,返回目标类型的对象
    10     void output(){ cout << aa << "," << bb << endl; }
    11 };
    12 void main()
    13 {
    14     double b = 3.1;
    15     a a = b;    //double-->a
    16     a.output();
    17 }

  • 相关阅读:
    在vue.js中mixin和页面执行顺序问题
    【转载】Node.js 教程(菜鸟教程系列)
    【转载】一致性hash算法释义
    多线程还是多进程的选择及区别
    腾讯
    gdb命令与调试方法
    面试题56:链表中环的入口节点
    面试题52:缺少i的乘积数组
    UML类图
    面试题51:数组中重复的数字
  • 原文地址:https://www.cnblogs.com/mrlsx/p/5879500.html
Copyright © 2011-2022 走看看