您现在的位置: 天极网 > 开发频道 > C++ 类型转换
全文

C++ 类型转换

2001-08-28 08:49作者:--出处:pcvc.net责任编辑:方舟

  类型转换是将一种类型的值映射为另一种类型的值。类型转换实际上包含有自动隐含和强制的两种。

  类型的自动隐式转换

  C++语言编译系统提供的内部数据类型的自动隐式转换规则如下:

  1. 程序在执行算术运算时,低类型可以转换为高类型。

  2. 在赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它。

  3. 当在函数调用时,将实参值赋给形参,系统隐式地将实参转换为形参的类型后,赋给形参。

  4. 函数有返回值时,系统将自动地将返回表达式类型转换为函数类型后,赋值给调用函数。

  在以上情况下,系统会进行隐式转换的。当在程序中发现两个数据类型不相容时,又不能自动完成隐式转换,则将出现编译错误。例如:

   int * p = 100;

  在这种情况下,编译程序将报错,为了消除错误,可以进行如下所示的强制类型转换:

   int * p = (int *)100;

  将整型数100显式地转换成指针类型。

  构造函数具有类型转换功能

  在实际应用中,当类定义中提供了单个参数的构造函数时,该类便提供了一种将其他数据类型的数值或变量转换为用户所定义数据类型的方法。因此,可以说单个参数的构造函数提供了数据转换的功能。下面通过一个例子进一步说明单参数构造函数的类型转换功能。

#include
class A
{
public:
A() { m=0; }
A(double i) { m=i; }
void print() { cout< private:
double m;
};

void main()
{
A a(5);
a=10; file://a与10是不同的数据类型
a.print();
}
 

  程序的输出结果为:

  10

  在该程序中,赋值语句a=10;中,赋值号两边数值10和对象a是两上不相容的数据类型,可是它却能顺利通过编译程序,并且输出显示正确结果,其主要原因是得益于单参数的构造函数。编译系统选通过标准数据类型转换,将整型数值10转换成double型,然后,再通过类中定义的单参数构造函数将double型数值转换为A类类型,最后把它赋值给a。这些转换都是自动隐式完成的。
共2页。 1 2 :

软件资讯·软件下载尽在天极软件

共2页。 1 2 下一页 末页
相关搜索:
相关文章及软件
关注此文读者还看过
热门关注
特别推荐
网友关注
软件下载
娱乐下载
驱动下载
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众