码迷,mamicode.com
首页 > 编程语言 > 详细

c++之类类型转换

时间:2015-03-11 23:12:47      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

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

    基本类型 ←→ 基本类型

    基本类型 ←→ 类类型

    类类型 ←→ 类类型

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

    构造函数  转换函数

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

 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 类型的对象

  • 该函数只能为成员函数,不能为友元 

 

c++之类类型转换

标签:

原文地址:http://www.cnblogs.com/Smart-Du/p/4331171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!