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 }

posted on 2016-09-17 19:53  小菜鸡y  阅读(522)  评论(0编辑  收藏  举报