Visual Studio2010新特性--C++王者归来(2)--安全数据类型safeint

本文介绍了Visual Studio 2010中C++新增的安全数据类型SafeInt,该类型能确保运算安全,避免异常和常规错误。通过示例代码展示了如何使用SafeInt进行加法和除法运算,以及如何处理溢出和除零异常。文章还提及作者的C++2010开发相关著作。
摘要由CSDN通过智能技术生成
               

 

VC++2010在c++语言里面增加了一个特殊的新特性,safeint是一种安全数据类型,

能够保证运算是安全的,使用安全数据类型能够够规避软件异常,以及软件测试检测的

常规性很多错误,具体安全数据类型的请见代码演示,

代码由vc++2010调试通过!备有详细的注释!

 

 

#include "stdafx.h"#include <safeint.h>#include <iostream>using namespace std;using namespace Microsoft::Utilities;class CMySafeIntException : public SafeIntException{public: static void CMySafeIntException::SafeIntOnOverflow() {  cout << "捕获SafeInt溢出异常!" << endl; } static void CMySafeIntException::SafeIntOnDivZero() {  cout << "捕获SafeInt被零除!" << endl; }};int _tmain(int argc, _TCHAR* argv[]){ while (1) {  unsigned int a, b;  cout << "输入前8位无符号整数: ";  cin >> a;  cin.ignore();  cout << "输入第二个8位无符号整数: ";  cin >> b;  cin.ignore();  // 添加两个变量  cout << "添加两个数字的8位整数:" << endl;  // 新增两个整数使用正常调用  unsigned __int8 i1 = a;  unsigned __int8 i2 = b;  cout << "    标准运算,结果=";  unsigned __int8 iResult = i1 + i2;  cout << (int)iResult << endl;  // 新增两个整数使用SafeInt对象  SafeInt<unsigned __int8, CMySafeIntException> si1(i1);  SafeInt<unsigned __int8, CMySafeIntException> si2(i2);  cout << "    Using SafeInt objects, result=";  SafeInt<unsigned __int8, CMySafeIntException> siResult = si1 + si2;  cout << (int)siResult << endl;  // 整数相除  cout << endl << "整数相除:" << endl;  // 两个整数正常除法  cout << "     标准运算,结果=";  if (i2 != 0)  // Prevent a crash!  {   iResult = i1 / i2;   cout << (int)iResult << endl;  }  else   cout << "中止因为除以零." << endl;  //两个整数除以使用SafeInt对象  cout << "    使用SafeInt对象, 结果=";  siResult = si1 / si2;  cout << (int)siResult << endl;  cout << endl << endl; } return 0;}

欢迎vc++2010技术交流,需要源码请在CSDN博客留言留下Email

 

本文作者专著《Visual C++2010开发权威指南》即将推出,敬请关注,Visual C++2010最近技术,Windows7开发最新技术!

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值