温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++怎么封装混乱的代码

发布时间:2021-11-29 11:42:19 来源:亿速云 阅读:136 作者:iii 栏目:大数据

本篇内容介绍了“C++怎么封装混乱的代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

封装混乱的代码,而不是传播它们

Reason(原因)

混乱的代码很容易隐藏错误并且很难编写。一个好的接口会易用且安全。混乱的,低层次代码会产生很多像下面示例一样的程序。

Example(示例)
int sz = 100;int* p = (int*) malloc(sizeof(int) * sz);int count = 0;// ...for (;;) {    // ... read an int into x, exit loop if end of file is reached ...    // ... check that x is valid ...    if (count == sz)        p = (int*) realloc(p, sizeof(int) * sz * 2);    p[count++] = x;    // ...}

这是一段低层次,冗长,易错的代码。例如,我们忘记了检查内存枯竭。作为代替手段,我们可以使用vector:

vector<int> v;v.reserve(100);// ...for (int x; cin >> x; ) {    // ... check that x is valid ...    v.push_back(x);}
译者注:vector在保证高性能的前提下,还可以提供完善的内存管理。
Note(注意)

标准库和GSL可以作为这个原则的范例。例如,与其直接使用数组、联合体、类型转换,自己处理生命周期、gsl::owner等问题,不如使用标准库提供的vector,span,lock_guard和future等经过经过更高层次抽象和实现的功能。标准库的设计和开发者和我们相比,时间更充裕,经验也更丰富。类似的,我们可以也应该设计和实现专用库,而不是让使用者(通常是我们自己)自己不断地挑战低层次代码。这是构成本准则中部分原则的另一种说法。

Enforcement(实施建议)

找到“混乱代码”,例如复杂指针操作或者除了实现抽象之外的类型转换。

“C++怎么封装混乱的代码”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI