自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

面向对象思考

天下难事必作於易。天下大事必作於细。

  • 博客(31)
  • 资源 (25)
  • 论坛 (14)
  • 收藏
  • 关注

翻译 C++核心准则边译边学-F.8 优先选择纯函数

F.8: Prefer pure functions(优先选择纯函数)译者注:纯函数是指符合下面两个特点的函数: 同样的输入一定产生同样的输出。但是并不要求所有的数据都一定参数计算输出值。 不会产生副作用。除了可见的输出之外,不会产生额外的输出。这里额外的输出可以是I/O操作,调用额外接口,发送通信数据等。 Reason(原因)Pure functions are...

2019-12-31 18:50:18 159

翻译 C++核心准则边译边学-F.7 对于通常的使用场景,应该使用T*或T&参数而非智能指针。

F.7: For general use, take T* or T& arguments rather than smart pointers对于通常的使用场景,应该使用T*或T&参数而非智能指针。Reason(原因)Passing a smart pointer transfers or shares ownership and should only be use...

2019-12-30 20:16:10 199

翻译 C++核心准则边译边学-F.6 如果函数不会抛出异常,则声明为noexcept

F.6: If your function may not throw, declare it noexcept(如果函数不会抛出异常,则声明为noexcept)Reason(原因)If an exception is not supposed to be thrown, the program cannot be assumed to cope with the error and sh...

2019-12-29 20:19:23 1044

翻译 C++核心准则边译边学-F.5 如果函数非常小而且时间敏感,将其定义为inline

F.5: If a function is very small and time-critical, declare it inline(如果函数非常小而且时间敏感,将其定义为inline)Reason(原因)Some optimizers are good at inlining without hints from the programmer, but don't rely on ...

2019-12-28 19:49:30 148

翻译 C++核心准则边译边学-F.4 如果函数有可能需要编译时计算,将它定义为constexpr

F.4: If a function may have to be evaluated at compile time, declare it constexpr(如果函数有可能需要编译时计算,将它定义为constexpr)关于constexpr的基础知识,可以参照以下链接:https://mp.weixin.qq.com/s/Y_pEIVO8H6u-fpPczJU5MwReas...

2019-12-27 20:14:52 216

翻译 C++核心准则边译边学-F.3 保持函数简短

F.3: Keep functions short and simple(保持函数简短)Reason(原因)Large functions are hard to read, more likely to contain complex code, and more likely to have variables in larger than minimal scopes. Functi...

2019-12-26 19:57:56 164

翻译 C++核心准则边译边学-F.2 一个函数只执行单一逻辑操作

F.2: A function should perform a single logical operation(一个函数只执行单一逻辑操作)Reason(原因)A function that performs a single operation is simpler to understand, test, and reuse.执行单一操作的函数更容易理解,测试和复用。Exa...

2019-12-25 19:54:52 136

翻译 C++核心准则边译边学-F.1:将有意义的操作封装为精心命名的函数

F.1: "Package" meaningful operations as carefully named functions(将有意义的操作封装为精心命名的函数)Reason(原因)Factoring out common code makes code more readable, more likely to be reused, and limit errors from co...

2019-12-24 18:51:28 177

翻译 C++核心准则边译边学-I.30 封装必要的违反

I.30: Encapsulate rule violations(封装必要的违反)Reason(原因)To keep code simple and safe. Sometimes, ugly, unsafe, or error-prone techniques are necessary for logical or performance reasons. If so, keep t...

2019-12-23 18:29:37 134

翻译 C++核心准则边译边学-I.27 考虑使用指向实现的指针技术获得稳定的ABI

I.27: For stable library ABI, consider the Pimpl idiom(考虑使用指向实现的指针技术获得稳定的ABI)Reason(原因)Because private data members participate in class layout and private member functions participate in overload...

2019-12-22 18:31:16 147

翻译 C++核心准则边译边学-I.26 如果想要不同编译器都能适用的ABI,使用C风格规则子集

I.26: If you want a cross-compiler ABI, use a C-style subset(如果想要不同编译器都能适用的ABI,使用C风格规则子集)Reason(原因)Different compilers implement different binary layouts for classes, exception handling, function ...

2019-12-21 21:57:55 195

翻译 C++核心准则边译边学-I.25 在类体系中将抽象类定义成接口会更好

I.25: Prefer abstract classes as interfaces to class hierarchies(在类体系中将抽象类定义为接口会更好)译者注: 抽象类:不能直接生成示例的基类。 接口:不包含数据成员的抽象类。 Reason(原因)Abstract classes are more likely to be stable than base...

2019-12-20 22:20:21 135

翻译 C++核心准则边译边学-I.24 避免相同类型的无关参数相邻

I.24: Avoid adjacent unrelated parameters of the same type(避免相同类型的无关参数相邻)Reason(原因)Adjacent arguments of the same type are easily swapped by mistake.相同类型的毗邻参数很容易被弄反。Example, bad(反面示例)Cons...

2019-12-19 19:50:08 136

翻译 C++核心准则边译边学-I.23 尽量不增加函数的参数个数

I.23: Keep the number of function arguments low(尽量不增加函数的参数个数)Reason(原因)Having many arguments opens opportunities for confusion. Passing lots of arguments is often costly compared to alternatives....

2019-12-18 19:03:31 169

翻译 C++核心准则边译边学-I.22 避免对全局对象进行复杂的初始化

I.22: Avoid complex initialization of global objects(避免对全局对象进行复杂的初始化)Reason(原因)Complex initialization can lead to undefined order of execution.复杂的初始化可能引起没有定义的执行顺序。Example(示例)// file...

2019-12-17 20:07:30 133

翻译 C++核心准则边译边学-I.13 不要直接使用指针传递数组

I.13: Do not pass an array as a single pointer(不要直接使用指针传递数组)Reason(原因)(pointer, size)-style interfaces are error-prone. Also, a plain pointer (to array) must rely on some convention to allow the c...

2019-12-16 19:48:23 253

翻译 C++核心准则边译边学-I.12 用not_null定义不能为空的指针

I.12: Declare a pointer that must not be null as not_null( 用not_null定义不能为空的指针)Reason(原因)To help avoid dereferencing nullptr errors. To improve performance by avoiding redundant checks for nullp...

2019-12-15 18:50:32 530

翻译 C++核心准则边译边学-I.11 永远不要使用原始指针或引用传递所有权

I.11: Never transfer ownership by a raw pointer (T*) or reference (T&)(永远不要使用原始指针或引用传递所有权)Reason(原因)If there is any doubt whether the caller or the callee owns an object, leaks or premature de...

2019-12-14 18:52:24 180

翻译 C++核心准则边译边学-I.10 如果必要任务失败了,使用异常发信号

I.10: Use exceptions to signal a failure to perform a required task(如果必要任务失败了,使用异常发信号)Reason(原因)It should not be possible to ignore an error because that could leave the system or a computation in...

2019-12-13 18:02:20 165

翻译 C++核心准则边译边学-I.9 如果接口是模板类型,则使用concept文档化其参数

I.9: If an interface is a template, document its parameters using concepts(如果接口是模板类型,则使用concept文档化其参数)Reason(原因)Make the interface precisely specified and compile-time checkable in the (not so dis...

2019-12-12 20:17:47 143

翻译 C++核心准则边译边学-I.8 表示后置条件最好使用Ensures()

I.8: Prefer Ensures() for expressing postconditions(表示后置条件最好使用Ensures())Reason(原因)To make it clear that the condition is a postcondition and to enable tool use.明确的表示该条件是后置条件,同时也让工具检查成为可能。Examp...

2019-12-11 20:01:11 147

翻译 C++核心准则边译边学-I.7 说明后置条件

I.7: State postconditions (说明后置条件)Reason(原因)To detect misunderstandings about the result and possibly catch erroneous implementations.一方面可以检查对于结果的错误理解,另一方面可以捕捉易错实现。Example, bad(反面示例)Consider...

2019-12-10 18:45:29 190

翻译 C++核心准则边译边学-I.6 表达前提条件最好使用Expects()

I.6: Prefer Expects() for expressing preconditions 表达前提条件最好使用Expects()Reason(原因)To make it clear that the condition is a precondition and to enable tool use.这样可以更清楚地表明该条件是前提条件而且让工具可以使用它。Exa...

2019-12-09 18:42:38 264

翻译 C++核心准则边译边学-I.5 如果存在前提,一定要说明

I.5: State preconditions (if any)如果存在前提,一定要说明Reason(原因)Arguments have meaning that may constrain their proper use in the callee.参数的含义可能会限制它在被调用方的使用。Example(示例)Consider:考虑:double sqr...

2019-12-08 18:22:45 112

翻译 C++核心准则边译边学-I.4 接口类型应该精准且严格

I.4 Make interfaces precisely and strongly typed(接口类型应该精准且严格)Reason(原因)Types are the simplest and best documentation, improve legibility due to their well-defined meaning, and are checked at co...

2019-12-07 19:44:10 143

翻译 C++核心准则边译边学-I.3 避免单例

I.3: Avoid singletons(避免单例)Reason(原因)Singletons are basically complicated global objects in disguise.单例基本上就是一个复杂的全局对象的伪装。Example(示例)class Singleton { // ... lots of stuff to ensure th...

2019-12-06 19:44:17 148

翻译 C++核心准则边译边学-I.2:避免非常数全局变量

I.2: Avoid non-const global variables(避免非常数全局变量)Reason(原因)Non-const global variables hide dependencies and make the dependencies subject to unpredictable changes.非常数全局变量会隐藏依赖关系并导致依赖对象不可预知地被修改。...

2019-12-05 19:13:13 136

翻译 C++核心准则边译边学-I.1: 使接口清晰明确

I.1: Make interfaces explicit(使接口清晰明确)Reason(原因)Correctness. Assumptions not stated in an interface are easily overlooked and hard to test.正确性。在接口中没有说明的假设很容易被忽视且难于测试。Example, bad(反面示例)Con...

2019-12-04 18:59:20 143

翻译 C++核心准则边译边学-P.13: 酌情使用支持库

P.13: Use support libraries as appropriate(酌情使用支持库)Reason(原因)Using a well-designed, well-documented, and well-supported library saves time and effort; its quality and documentation are likely to b...

2019-12-03 19:18:13 134

翻译 C++核心准则边译边学-P.12: 酌情使用支持工具

P.12: Use supporting tools as appropriate(酌情使用支持工具)Reason(原因)There are many things that are done better "by machine". Computers don't tire or get bored by repetitive tasks. We typically have bette...

2019-12-02 19:36:11 168

翻译 C++核心准则边译边学-P.11 封装混乱的代码,而不是传播它们​

P.11: Encapsulate messy constructs, rather than spreading through the code 封装混乱的代码,而不是传播它们Reason(原因)Messy code is more likely to hide bugs and harder to write. A good interface is easier and safer...

2019-12-01 19:16:52 135

Qt环境下开发的计算器源码

Qt环境下开发的计算器源码 支持三角函数,反三角函数,求和,平均值,乘方,开方,对数 当然还有包含嵌套的四则运算。

2011-10-14

Aduino UNO D1 R32 硬件包

Aduino UNO D1 R32开发环境构筑时使用的硬件开发包,包含2020年3月的最新文件: arduino-esp32-master.zip esptool-2.6.1-windows.zip mkspiffs-0.2.3-arduino-esp32-win32.zip xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip

2020-03-15

C++11新特性文章汇总

本文件中汇集了博客中关于·C++11x新特性的所有文章。

2018-10-25

Android学习-字幕播放器(2)先来一个音频播放器

Android学习-字幕播放器(2)的工程和源代码

2011-08-13

Android函数计算器(含源码,测试工程)

原创Android环境下的计算器的源代码,工程文件 Android环境下的单元测试工程及源代码。

2011-12-18

多任务编程超入门-(2) 线程协作的理想和现实 示例代码

多任务编程超入门-(2) 线程协作的理想和现实 示例代码

2017-07-09

多任务编程超入门-(10) 线程同步,数据交换的序列图

多任务编程超入门-(10) 线程同步,数据交换的序列图

2017-07-23

多任务编程超入门-(8) 递归互斥量

多任务编程超入门-(8) 递归互斥量 示例工程,代码

2017-07-17

Android应用开发记录-字幕播放器(4)完成

<<Android应用开发记录-字幕播放器(4)完成>>配合的工程文件,源码,用于动作确认的歌曲及歌词 另外,工程是针对Android2.2建立的。 如果想在Android2.1运行,可以修改工程文件或从下面地址下载针对2.1做的安装包,应该可以直接安装。 http://download.csdn.net/source/3571257

2011-08-28

Android小游戏-9宫格类图类图

Android小游戏-9宫格类图类图,配合源码、 请用EA(Enterprise Architect)打开

2011-08-11

多任务编程超入门-(11) 学以致用

多任务编程超入门-(11) 学以致用的示例工程,代码

2017-07-26

Android应用开发记录-字幕播放器(5)完善附带工程,源码

Android应用开发记录-字幕播放器(5)完善附带工程,源码 1.将操作按钮改成图标方式 2.有电话接入时暂停播放。 3.通过线控按钮控制播放,暂停,上一句歌词,下一句歌词功能。(Android2.2以上版本) 4.拔掉耳机线时自动暂停(Android2.2以上版本) 5.在【正在进行中】画面中表示启动用快捷方式 6.改善(没有解决)定位歌词不准确(选中的歌词的前面一段时间不能播放)

2011-09-07

Qt开发的计算器(可执行文件)

利用Qt开发的计算器的可执行文件。 可以直接在Widnows环境中执行。

2011-10-14

多任务编程超入门-(4) 发生了什么?

多任务编程超入门-(4) 发生了什么? 出现的QT工程文件,示例代码

2017-07-10

Anroid歌词秀1.5版

Anroid歌词秀1.5版的安装包,下载后可直接安装在Android(版本2.1以上)上。

2011-11-27

Android下的原创小游戏-九宫格

为了学习Android,自己编了一个小游戏,就是9宫格。 功能: 1.自动分析可选数字。 2.Undo(用了Command设计模式) 3.支持自编题目。 内容: Andorid工程,源码

2011-08-10

ANSI ISO IEC 14882

C++国际标准,基本中的基本,出了用于理解C++语法外, 也可以用来研究如何解析。

2010-12-09

多任务编程超入门-(4) 发生了什么? 示例代码

多任务编程超入门-(4) 发生了什么? 示例代码

2017-07-10

Android歌词秀源代码及工程文件

Android歌词秀源的代码及工程文件。适用Android2.1以上系统

2011-11-27

[Android应用开发记录-字幕播放器(5)完善]附属工程,源码

[Android应用开发记录-字幕播放器(5)完善]附属工程,源码 1.将操作按钮改成图标方式 2.有电话接入时暂停播放。 3.通过线控按钮控制播放,暂停,上一句歌词,下一句歌词功能。(Android2.2以上版本) 4.拔掉耳机线时自动暂停(Android2.2以上版本) 5.在【正在进行中】画面中表示启动用快捷方式 6.改善(没有解决)定位歌词不准确(选中的歌词的前面一段时间不能播放)

2011-09-07

Android应用开发记录-字幕播放器(3)工程包

用于【博客:Android应用开发记录-字幕播放器(3)使用的Service的音频播放器的】的工程文件及源码

2011-08-18

LyricPlayer for Android 2.1

对软件进行如下变更后生成的安装文件。 将Android版本调整为2.1 按钮换成ImageButton 通过点击直接选择歌词播放

2011-09-03

LyricPlayer类图

目前内容: LyricPlayer全体类图 SaftyTimer 类图第一版,持续更新中。

2011-09-04

多任务编程超入门-(5) 对症下药

多任务编程超入门-(5) 对症下药 示例代码

2017-07-11

多任务编程超入门-(9) 线程同步

多任务编程超入门-(9) 线程同步 示例代码,QT工程

2017-07-19

面向对象思考的留言板

发表于 2020-01-02 最后回复 2020-01-02

C++建模实战1-高考录取系统

发表于 2017-03-12 最后回复 2017-03-24

博文介绍:C++显示转换总结

发表于 2017-03-09 最后回复 2017-03-12

初来乍到,共享一个自己编写的计算器程序(含源码)

发表于 2011-10-15 最后回复 2017-03-09

Android歌词秀1.5版(原创+源码奉献)

发表于 2011-11-27 最后回复 2017-03-09

计算二进制(bin)10101010等于负几你要花多长时间?

发表于 2017-03-08 最后回复 2017-03-08

计算二进制(bin)10101010等于负几你要花多长时间?

发表于 2017-03-08 最后回复 2017-03-08

原创Android小游戏-九宫格,有源码的哦!

发表于 2011-08-12 最后回复 2014-03-14

30分钟理解关键链--《突破项目的瓶颈--关键链 》读书笔记

发表于 2013-04-15 最后回复 2013-05-06

Android函数计算器(含源码,Android测试工程)

发表于 2011-12-18 最后回复 2011-12-20

原创:Android应用开发记录-Andorid歌词秀(4)完成,附源码

发表于 2011-08-28 最后回复 2011-11-17

有没有一个方法用类似Observer/Listener的方法来监听MediaPlayer播放位置的变化?

发表于 2011-08-23 最后回复 2011-08-24

运用Proxy模式简化的Service的管理和使用的实例(附源码及工程文件)

发表于 2011-08-18 最后回复 2011-08-19

[已处理] 为什么无论发评论还是上传资源都不能获得积分?

发表于 2010-12-09 最后回复 2010-12-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除