- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 C++改善程序与设计条例总结(七)
条款39:明智而审慎地使用private继承。尽可能使用复合关系,必要时使用private继承。 (1)如果类之间的继承关系为private继承,编译器不会将子类对象转换为基类对象,这是区别public继承的一点;private继承的所有基类成员在子类中都会变成private属性,即使它们在基类中原本是protected或public属性; ...
2019-04-16 23:03:02 108
原创 C++改善程序与设计条例总结(六)
条款34: 区分接口实现与接口继承。在public继承之下,子类(derived class)总是继承父类(base class)的接口。父类中声明的三类函数,纯虚函数,虚函数,还有非虚函数在继承下目的不同: (1) 声明pure virtual函数的目的是为了让derived class只继承函数接口; (2) 声明简朴的i...
2019-04-05 23:22:59 139
原创 C++改善程序与设计条例总结(五)
条款29:为“异常安全”而努力是值得的。 (1)异常安全 有两个条件,一个是不泄露任何资源,一个是不允许数据败露 。不泄露任何资源可以通过条款13的以对象管理资源来实现,而不允许数据败露,可以通过调整语句顺序等其他方式实现; (2)异常安全函数提供三类保证:基本承诺、强烈保证、不抛掷异常保证。 ...
2019-03-31 10:39:27 143
原创 openssl1.1.0h安装教程
首先,此文适用于openssl1.1.0h源码在windows环境下编译,详细安装的教程请见https://www.jianshu.com/p/2d28277a0875,此安装步骤对于Visual Studio 2015同样适用。安装过程注意以下几点: (1)适用visual Studio编译时,如果编译32位则选择 x86 本机工具命令提示 ,如果编译64位则选...
2019-03-10 14:35:44 3619
原创 C++改善程序与设计条例总结(四)
条款23: 宁可以非成员(no-member)函数、非友元(no-friend)函数替换成员函数。这样组偶可以增加封装性、包裹弹性和技能扩充性。 (1)推崇封装使得编码者被能自由地改变对象书,改变事物之影响有限客户。面向对象守则要求数据应该尽可能被封装,而成员函数、友元函数带来的封装性比非成员函数、非友元函数要低。由条款22知,成员变量是private,类的成员函数和...
2019-03-09 22:38:37 232
原创 C++改善程序与设计条例总结(二)
条款9:绝不在构造和析构过程中调用virtual函数。 (1)子类构造之前必先调用父类构造函数,父类构造期间virtual函数不会向下调用至子类阶层,此时子类尚未构造; (2)子类析构之后再进行父类析构,在父类析构时virtual函数已经无法找到子类的成员了; (3)修改父类的virtual函数为non-virtual,并在子...
2019-03-09 11:49:46 144
原创 C++改善程序与设计条例总结(三)
条款17:以独立语句将newed对象置入智能指针,预防资源泄露。 比如使用std::tr1::shared_ptr智能指针管理资源对象,processWidget(std::tr1::shared_ptr<Widget>(new Widget),priority()) ,C++编译器函数调用所做工作的次序不定,只能确定智能指针std::tr1::shar...
2019-03-04 22:36:36 121
原创 c++改善程序与设计条例总结(一)
条款1:C++是有相关语言组成的联邦而非单一语言,包括四方面: (1) C语言基础语法,比如语句、预处理器、内置数据类型、数组、指针等; (2)面向对象守则,常见于类构造和析构、封装、继承、多态; (3)泛型编程,Template 相关设计,模板元编程; (4)STL库,包括容器、迭代器、...
2019-02-21 22:26:44 109
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人