一.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 }
原文链接: https://www.cnblogs.com/chenzexin/p/13180453.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/199427
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!