7宽位字符串映射.ppt

7宽位字符串映射.ppt

ID:48411668

大小:182.50 KB

页数:51页

时间:2020-01-19

7宽位字符串映射.ppt_第1页
7宽位字符串映射.ppt_第2页
7宽位字符串映射.ppt_第3页
7宽位字符串映射.ppt_第4页
7宽位字符串映射.ppt_第5页
资源描述:

《7宽位字符串映射.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、6.11宽位字符串映射宽位字符串映射与字符串映射基本一样。主要是由函数wstring_alloc,wstring_dup和wstring_free来完成内存的分配和释放。定点数据类型的映射C++中没有定点数据类型,因此C++对定点数据类型的支持与运算是由一个类和一组重载的运算符函数提供。namespaceCORBA{//……classFixed{//……};}通过这一映射,就可以在C++中使用定点数的数值,并对它们进行计算。定点数据类型的映射6.12.1构造函数通过构造函数将完成这一转换:Fixedf=999;//fied<3,0>Fixedf1=1000.0;//fied<4,

2、0>Fixedf2=1000.05;//fied<6,2>Fixedf3=0.1;//fied<18,17>Fixedf=1E30;//fied<31,0>Fixedf=1E29+0.89;//fied<31,1>-----------1E29+0.8在初始化时由于二进制数表示上的特殊性,也可能会产生一些变化,例如在许多现实中0.1的实际值是0.10000000000000001。还可能被截断如1E29+0.89被截断为1E29+0.8。定点数据类型的映射对超过31个的整数位的数值进行初始化会产生一个DATA_CONVERSION异常。构造字符串类型的Fixed值遵循IDL定点数

3、常量的规则,字符串前面的0和后面的0被忽略掉。“d”或“D”是可选的。例如:Fixedf1=“1.2”;fixed<2,1>Fixedf1=“01.20D”;fixed<2,1>。6.12.2存取函数fixed_digits和fixed_scale成员函数分别返回数值位数和小数位数的值。例如:Fixedf=“3.14D”cout<

4、ixed值转换为LongDouble值定点数据类型的映射6.12.4截断与舍入truncate成员函数返回一个包括指定的数值位数与小数位数的新的Fixed值,并且在需要时,将小数位数进行截断:例如:Fixedf=“0.99”;cout<

5、;Fixedf3=“-0.445”;r=f1.round(0);//0r=f1.round(1);//0.4r=f2.round(0);//0r=f1.round(1);//0.5r=f3.round(1);//-0.4r=f1.round(0);//-0.456.13结构的映射6.13.1定长度结构的映射IDL结构使用相对应的成员映射到C++结构。例如:structDetails{doubleweight;unsignedlongcount;};映射为:classDetails_var;structDetails{CORBA::doubleweight;CORBA::unsig

6、nedlongcount;typedefDetails_var_var_type;//成员函数……};结构的映射可以在代码中使用生成的结构,和使用C++中的结构一样。例如:Detailsd;d.weight=9.5;d.count=12;C++允许静态初始化聚集。聚集:一个一个类、结构或数组中没有用户说明的构造函数、基类、虚拟函数或私有函数和保护的非静态数据成员,那么这个类、结构或数组都是一个聚集。上述的结构就是一个聚集,因此可以如下初始化:Detailsd={9.5,12};6.13.2变长度结构的映射:对于变长度的结构,C++映射就必须解决内存管理的问题。例如:structF

7、{doublenum;stringal;};映射如下:classF_var;structF{CORBA::Doublenum;CORBA::String_mgral;typedefF_varvar_type;//成员函数……};结构的映射在此IDL字符串被映射为一个String_mgr类型,而不是String_var或char*类型。String_mgr类似于String_var,其区别就是String_mgr类中缺省的构造函数将字符串初始化为空字符串,而不是初始化为空指针。将篏

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。