自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

面向对象思考

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

  • 博客(14)
  • 资源 (24)
  • 收藏
  • 关注

原创 C++11新特性(57)- final说明符

个人以为,C++之所以适合架构设计,很大一个原因就是它可以对将来编程。比如可以通过public/protected/private来限定派生类对基类成员的访问,可以定义抽象类要求派生类必须实现的接口等。 当我们声明/定义了一个虚函数时候,派生类可以选择覆盖这个虚函数,也可以选择不覆盖。关于这一点,C++也提供了必要的方法,来要求派生类覆盖某些方法,这也可以看作是一种对将来编程。 纯...

2018-07-31 20:34:47 576

原创 C++11新特性(56)- override说明符

多态和虚函数 多态是C++的重要特征之一,同时也是初学者比较难理解的特征。先来看一个简单的例子:  代码很简单,按照作者自己的话描述一下上述代码中多态从定义到起作用的要点,应该不会再简单了,从main函数看起: 基类的指针 指向派生类的对象 派生类覆盖了基类中定义的虚函数  这三点是必要条件,缺一不可。 上面的代码还有另外一些有有意...

2018-07-31 15:06:52 533

原创 C++11新特性(55)- explicit类型转换运算符

为了想出本文中这个和C++Primer书中不同的,更加有意义的例子,作者花费了不少心思,请大家务必认真理解。类型转换运算符看下面的例子: 这时一个复数类的雏形,定义了一个double类型的类型转换运算符。有了它以后,可以像下面这样使用:输出结果如下:  complex不支持输出运算符,所以编译器努力将c1转换成double类型以后输出。到目前为止...

2018-07-25 20:20:50 1542 2

原创 C++11新特性(54)- function类模版

函数指针是C语言中算是比较困难的内容之一,C语言实现的高级功能很多都离不开函数指针构成的列表。进入C++之后首先是引入了函数对象,接着C++11又引入了lamda表达式和参数绑定。 上述4种技术有一个共同的特征,即都可以对其使用调用运算符,C++称之为可调用对象。可调用对象虽然有着共同的调用模式,但是却分别属于完全不同的类型。如果需要组织一个可调用对象的列表(或其他数据结构),就需要一种共...

2018-07-24 20:17:55 448

原创 C++11新特性(53)- 引用限定成员函数

曳光弹类 根据需要的不同,代码也会有所不同。代码除了实现了,构造函数、析构函数以外,还 实现了setText和output两个方法用于修改内容和输出内容 重载了+=运算符和+运算符用于对象连接  参照代码 作为后面内容的铺垫,考虑下面的代码: 代码中生成了t1,t2连个实例,然后将二者相加并输出。值得注意的是:t1+t2的结果并没...

2018-07-23 20:50:21 950

原创 C++11新特性(52)- 移动迭代器

劳苦功高的曳光弹类 为了说明移动迭代器还是继续请出曳光弹类:类本身很简单,就是在各个构造函数,赋值运算符输出log信息。 移交单个数据 效率最低的方式 代码:程序输出: 可以看出,执行了两次构造函数和一次赋值运算。通过观察代码可以看出,拷贝动作发生了两次。 通过移动来提高效率 我们当然可以通过调用拷贝构造函数来...

2018-07-19 20:39:37 1482

原创 C++11新特性(51)- 移动构造函数通常应该是noexcept

不会抛出异常的移动构造函数 拷贝构造函数通常伴随着内存分配操作,因此很可能会抛出异常;移动构造函数一般是移动内存的所有权,所以一般不会抛出异常。 C++11中新引入了一个noexcept关键字,用来向程序员,编译器来表明这种情况。  noexcept函数 对于永远不会抛出异常的函数,可以声明为noexcept的。这一方面有助于程序员推断程序逻辑,另一方面编译...

2018-07-18 20:50:32 3847 2

原创 C++11新特性(50)- 移动构造函数和移动赋值

上一篇文章中,通过用移动string对象代替拷贝string对象,大大提高了程序的运行速度。其实对于我们自己写的类也可以适用同样的方式,前提是这些类实现了移动构造函数和移动赋值运算符。 移动构造函数 首先看通常的拷贝构造函数:  拷贝构造函数中实现了深拷贝处理。再看移动构造函数:代码构造和拷贝构造函数类似,但是内存的处理不是拷贝而是转移。注意参数类型是右...

2018-07-17 20:25:14 25555 4

原创 C++11新特性(49)- 用移动类对象代替拷贝类对象

string类是C++标准库中一个很重要的类,使用非常方便。但是它存在一个问题:无论是否需要,拷贝构造函数和赋值运算符都会生成文字列的拷贝。 C++11中引入了右值引用和移动的概念,使得程序员可以在构造,赋值的的时候可以选择拷贝还是移动对象,从而大幅度提高程序运行的效率。 示例 代码分别使用string的拷贝构造函数,赋值运算符的拷贝版本和移动版本进行比较。 ...

2018-07-16 20:54:13 986 2

原创 C++11新特性(48)- 使用=delete阻止拷贝类对象

上一篇文章说的是,如果编译器没有生成默认构造函数或拷贝控制函数,可以使用=default要求编译器生成;同样地,有时我们也会希望某些函数函数不要被调用,这时可以使用=delete修饰该函数。单例模式的例子例如在Singleton设计模式中就希望类的对象只能通过getInstance静态方法得到。在C++11发布之前,类是通过将其拷贝构造函数和赋值运算符私有化来实现的。先看代码createInsta...

2018-07-14 15:50:26 4999

原创 C++11新特性(47)- 将=default用于拷贝控制成员

本文中的内容有的可以从C++的经典书籍中找到根据,有的是作者的理解。将些内容结合在一起,作者希望可以对这个问题有一个完整的表述:知其然,还要知其所以然。编译器自动生成的操作有一定经验的C++程序员都会知道,C++编译器会自动生成一些默认操作:1.默认构造函数2.析构函数3.拷贝构造函数4.赋值运算符5.移动构造函数6.移动赋值运算符这些操作被分为两组:默认构造函数自己为一组,其他的5个为一组。如果...

2018-07-12 18:22:17 801

原创 C++11新特性(46)- allocator::construct可使用任意构造函数

一般来说,C++中根据需要逐个构建对象的情况比较多。例如我们有下面的Tracer(曳光弹)类:这个类只是在构造函数,析构函数中输出了表示构造函数和析构函数被执行的字符串。之所以叫曳光弹,是希望通过它确认对象构建和销毁的过程,其作用就像曳光弹一样。构建,销毁对象的代码如下:以下是输出结果,和我们预想的结果一样,构造函数,析构函数各被调用一次。如果希望同时创建、销毁多个对象,可以使用如下代码:以下输出...

2018-07-04 20:08:41 7595

原创 C++11新特性(45)- 和动态数组相关的新特性

我们通常称使用new T[]形式分配的内存为动态数组,C++11中包含一些和动态数组相关的特性。使用初始化列表初始化可以像一般的数组一样,使用初始化列表对动态数组进行初始化,代码如下:毕竟不是数组之所以叫动态数组,我猜有两个原因,一个是它的内存是动态分配的,一个就是它可以像数组一样使用:但是动态数组和数组还是有一些区别,例如编译器无法从数组名获知数组的大小信息。下面的代码就不能正确动作: 同样地,...

2018-07-03 19:57:19 2407

原创 C++11新特性(44)- shared_ptr/weak_ptr示例

通过前面的五篇文章,相信各位已经对只能指针有了一个大致的了解。本文趁热打铁,通过一个实例介绍shared_ptr和weak_ptr配合使用以后,给程序带来的变化。实例背景先看下面的类图:这是一台台式电脑的静态建模。DesktopPC有四个部分组成:主机,键盘,鼠标和显示器。这一部分是聚合关系的体现。由于各个设备信息输出的需求,1.键盘和鼠标需要向主板报告用户输入信息,所以也管理着主板信息;2.主板...

2018-07-02 20:20:13 1191

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

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

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

2017-07-26

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

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

2017-07-23

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

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

2017-07-19

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

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

2017-07-17

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

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

2017-07-11

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

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

2017-07-10

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

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

2017-07-10

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

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

2017-07-09

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

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

2011-12-18

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

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

2011-11-27

Anroid歌词秀1.5版

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

2011-11-27

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

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

2011-10-14

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

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

2011-10-14

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

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

2011-09-07

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

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

2011-09-07

LyricPlayer类图

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

2011-09-04

LyricPlayer for Android 2.1

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

2011-09-03

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

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

2011-08-28

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

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

2011-08-18

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

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

2011-08-13

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

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

2011-08-11

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

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

2011-08-10

空空如也

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

TA关注的人

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