自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Exp.Joker

该博客是用来向韦东山和唐佐林老师学习中,所记录的笔记,特此声明。

  • 博客(122)
  • 收藏
  • 关注

原创 C++ 深度解析教程(十二)类型转换函数

避免编译器的隐式类型转换,确保两个类型一致普通类型与类类型之间能否进行类型转换?类类型之间能否进行类型转换?旧式的C方式强制类型转换 可以类类型之间的相互转换? !类型转换函数 VS 转换构造函数...

2022-06-16 23:21:19 384

原创 C++ 深度解析教程(十一)智能指针分析、逻辑操作符的陷阱、逗号操作符的分析、前置操作符和后置操作符

智能指针的使用军规:只能用来指向堆空间中的对象或者变量逻辑操作符可以重载吗?重载逻辑操作符有什么意义?下面的代码有没有区别?为什么?两行语句独立,这个时候没有使用返回值,所以编译期自动优化为一致的。两行语句独立,这个时候没有使用返回值...

2022-06-16 23:18:25 508

原创 C++ 深度解析教程(十)数组操作符的重载、函数对象分析、关于string的疑问、关于赋值的疑问

什么时候需要重载赋值操作符?编译器是否提供默认的赋值操作?

2022-06-16 13:56:34 463

原创 C++ 深度解析教程(九)类中的函数重载、操作符重载的概念、C++ 中的字符串类、初探 C++ 标准库、完善的复数类

全局函数,普通成员函数以及静态成员函数之间是否可以构成重载?Add函数可以解决Complex对象相加的问题,但是Complex是现实世界中确实存在的复数,并且复数在数学中的地位和普通的实数相同。为什么不能让+操作符也支持复数相加呢?2、编程实验:复数类的实现重复发明轮子并不是一件有创造性的事,站在巨人的肩膀上解决问题会更加有效!...

2022-06-16 13:50:28 625

原创 C++ 深度解析教程(八)类的静态成员变量、类的静态成员函数、二阶构造模式、友元的尴尬能力

构造函数能决定的只是对象的初始状态,而不是对象的诞生!! 在类中用friend关键字对函数或类进行声明

2022-06-16 13:42:06 359

原创 C++ 深度解析教程(七)对象的构造顺序、对象的销毁、神秘的临时对象、关于析构的疑问、关于const对象的疑问、关于类成员的疑问

对象的构造顺序1、问题:C++中的类可以定义多个对象,那么对象构造的顺序是怎样的?2、对象的构造顺序一3、对象的构造顺序二4、对象的构造顺序三 5、小结二十二、对象的销毁1、对象的销毁2、实例分析:IntArray使用分析3、存在的问题4、析构函数5、编程实验:析构函数使用初探6、编程实验:IntArray类的进化7、析构函数的定义准则当类中自定义了构造函数,并且构造函数中使用了系统资源(如:内存申请,文件打开,等) ,则需要自定义析构函数。8、小结二十四、经典问题解析二1、关于析构的疑问当程序中存...

2022-06-15 22:50:19 563

原创 C++ 深度解析教程(六)对象的构造、初始化列表的使用

对象的构造(上)1、问题:对象中成员变量的初始值是多少?2、小实验:下面的类定义中成员变量i和j的初始值为什么?编程实验:成员变量的初始值3、对象的初始化4、构造函数 5、小结十八、对象的构造(中)1、构造函数注意:初始化和赋值是完全不一样的。2、小实例3、编程实验:数组类的实现4、小结十九、对象的构造(下)1、特殊的构造函数2、拷贝构造函数3、什么时候需要进行深拷贝?4、编程实验:数组类的改进IntArray.cIntArray.hmain.c5、小结二十、初始化列表的使用1、问题:类中是否可以定义...

2022-06-15 22:36:27 732

原创 C++ 深度解析教程(五)进阶面向对象、类与封装的概念、类的真正形态

日常生活中,我们都习惯于对事物进行分类。那么,这种分类的思想是否可以引入程序设计中呢?问题︰1、类之间的继承关系没有表示出来2、继承而来的属性和行为需要重复声明问题:需要使用划线来表示属性和行为,不适合于编程开发!问题:使用中文进行属性和行为的描述,绝大多数编译器无法接受!思考:如何用程序设计中的概念描述类的属性和行为?电脑一般而言是由CPU,内存,主板,键盘和硬盘等部件组合而成。思考:学习电脑组装需要多少时间?学习电脑组装是否需要学习显示器,内存,主板,键盘和硬盘等部件的设计与制造?例:普通用户使用手机只

2022-06-15 22:29:44 398

原创 C++ 深度解析教程(四)C++ 中的新成员、新型的类型转换、关于const 的疑问、关于引用的疑问

C++ 中的新成员1、C++中的动态内存分配实例分析:C++中的动态内存分配2、new关键字malloc 函数的区别3、new关健字的初始化编程实验:初始化动态内存 4、C++中的命名空间5、C++命名空间的定义6、C++命名空间的使用实例分析:命令空间的使用7、小结十一、新型的类型转换1、强制类型转换2、问题。。。强制类型转换在实际工程中是很难完全避免的!如何进行更加安全可靠的转换?3、新式类型转换实例分析:新式类型转化初探4、小结十二、经典问题解析一1、关于const 的疑问2、关于引用的疑问3、小..

2022-06-15 19:13:44 527

原创 C++ 深度解析教程(三)内联函数分析、函数参数的扩展、函数重载分析

重载在自然语言中是随处可见的。那么程序设计中是否也有重载呢?下面的函数指针将保存哪个函数的地址?第一个ps:函数的类型由返回值,参数类型和参数个数共同决定;函数类型 = 参数列表 + 返回值...

2022-06-15 19:07:39 520

原创 C++ 深度解析教程(二)进化后的const分析、布尔类型、引用的本质分析

C++中的const 注意:(为了兼容C语言)C++编译器虽然可能为const常量分配空间,但不会使用其存储空间中的值。

2022-06-15 18:59:51 490

原创 C++ 深度解析教程(一)学习C++的意义、C到C++的升级

如何提高UNIX的开发效率?当面向过程方法论暴露越来越多的缺陷的时候,业界开始考虑在工程项目中引入面向对象的设计方法,而第一个需要解决的问题就是︰高效的面向对象语言,并且能够兼容已经存在的代码。学习C++并不会影响原有的C语言知识,相反,学习C++可以让我们学到更多的软件设计方法。 C++兼容C语言的特性,C++保留了过多的低级语言的特性,java语言之父出现了,通过剪裁C++,使得JAVA更加纯正的面向对象,语法也更简单, 但是java是半编译型语言,需要虚拟...

2022-06-15 18:01:27 545

原创 Linux 网络开发必学课程(九)分布式智能家居项目雏形

客户端进入室内后能够主动发现服务(如:环境服务,灯光服务)各种服务之间,服务与客户端之间完全无耦合(服务可自由增减)提供服务的设备(嵌入式,服务器,PC,等)必须具备联网能力且遵循服务协议。服务设备遵循相同的协议:数据传输协议,服务提供模式,等。服务设备接收到查询协议包,回复协议内容及协议使用方式。客服端通过协议使用服务,无需关心服务设备的形态及位置。服务设备将能够提本机IP及能够提供的服务信息发回客户端。接收服务发现数据包,并应答当前设备服务信息。服务设备驱动,如:温湿度传感器驱动,灯光控制驱动,等。

2022-06-14 22:19:39 1170

原创 Linux 网络开发必学课程(八)网络通信框架的完善

如何扩展之前开发的通信框架,使其支持UDP通信,而成为一个完善的网络通信框架?

2022-06-14 22:16:02 406

原创 C陷阱与缺陷(四)PRINTF , VARARGS与 STDARG、Koenig和 Moo夫妇访谈

因为格式字符串决定了其余参数的类型,而且可以到运行时才建立格式字符串,所以C语言实现要检查printf 函数的参数类型是否正确是异常困难的。其中的%d格式项将被对应的待输出整数的10进制值替换,替换时不会在整数值的前后添加空格字符。%u格式项与%d格式项类似,只不过要求打印无符号10进制整数。%o、%x和%X格式项用于打印8进制或16进制的整数。 %s格式项所对应输出的字符串必须以一个空字符('\0')作为结束标志%og、%f 和%e这3个格式项用于打印浮点值。%g格式项用于打印那些不需要按列

2022-06-07 23:23:02 498

原创 C陷阱与缺陷(三)库函数、预处理器、可移植性

库函数、预处理器、可移植性

2022-06-07 23:21:48 352

原创 C陷阱与缺陷(二)语义“陷阱”、连接

指针与数组非数组的指针。作为参数的数组声明。避免“举隅法”。空指针并非空字符串边界。计算与不对称边界求值顺序。运算符&&、||和!整数溢出。为函数main提供返回值。什么是连接器?声明与定义。命名冲突与static修饰符。形参、实参与返回值。检查外部类型。头文件。...

2022-06-07 23:18:44 422

原创 Linux 网络开发必学课程(七)UDP 数据收发实战、深入UDP 数据收发

UDP 数据收发实战① 再论UDP协议② UDP和IP的区别③ UDP数据收发④ UDP编程模式⑤ UDP数据收发⑥ 编程实验:UDP数据收发

2022-06-07 23:10:45 1948

原创 Linux 网络开发必学课程(六)数据收发的扩展用法

数据收发的扩展用法(上)① 问题write()和send()都可以发送数据,有什么区别?read()和recv()都可以接收数据,有什么区别? ② 数据收发选项flags - 收发数据时指定的可选项信息调用时flags参数的值为0,表示什么?默认收发网络数据③ flags选项信息(常用)注意:不同的操作系统对上述可选项的支持不同,实际工程开发时,需要事先对目标系统中支持的可选项进行调研。④ MSG_OOB(带外数据,紧急数据)⑤ TCP带外数据实现原理⑥ TCP带外数据处理策略⑦ 编程实验:TCP紧急...

2022-06-07 23:08:45 643 1

原创 Linux 网络开发必学课程(五)TCP通信框架:客户端和服务端设计

TCP通信框架:客户端设计① TCP通信框架设计:封装、复用② 职责定义(功能定义)③ 客户端接口设计④ 客户端关键代码实现⑤ 编程实验:客户端设计与实现11、TCP通信框架:服务端设计① TCP通信框架设计问题:服务端如何知道什么时候进行事件回调通知? ② 服务端接口设计③ 服务端关键代码实现-初始化④ 服务端关键代码实现-事件监听⑤ 服务端关键代码实现-连接事件&数据事件⑥ 服务端关键代码实现-断连事件&事件通知⑦ 编程实验:服务端设计与实现......

2022-06-07 23:05:41 939

原创 Linux 网络开发必学课程(四)应用层协议设计与实现、应用层协议解析模块

应用层协议设计。如何在代码层面封装协议细节(仅关心消息本身)?如何通过socket文件描述符实时解析协议消息?

2022-06-07 23:02:52 775

原创 Linux 网络开发必学课程(三)Windows下的网络编程、TCP与UDP

TCP / IP 工作方式 三次交互结束后,连接建立!为什么是3次? 相互发送消息,都获得了回应⑫ TCP 连接断开 A: 我准备断了B: 可以,等我把剩下的数据发完就断过了一会儿~B: OK,发完了,断吧(服务端断开)A: OK(客户端断开)四次交互结束后,连接断开!...

2022-06-07 23:00:11 576

原创 Linux 网络开发必学课程(二)深入浅出IP地址、尝鲜 select 多路复用、基于多路复用的服务端

深入浅出IP地址、socket参数详解、网络编程中的地址类型、IP 地址相关函数、事件相关函数的分类、神奇的select()函数、select()相关数据类型及操作、解决方案:阻塞变轮询

2022-06-07 22:53:25 629

原创 Linux 网络开发必学课程(一)网络编程的概念与模式、服务端编程初体验

1、网络编程的概念与模式① 网络编程的本质使用操作系统提供的接口函数,使得应用程序具备收发网络数据的能力。② 网络编程核心概念③ 网络知识充电站④ 网络编程模式⑤ 初探网络编程接口#include #include ⑥ 编写网络实验2、服务端编程初体验① 客户端/服务端 编程模式 (c/s模型)② 服务端编程模式③ 服务端核心工作:绑定&监听&接收 1. 绑定 int bind( int sock, st......

2022-06-07 17:27:57 684 1

原创 C陷阱与缺陷(一)词法“陷阱”、语法“陷阱”

编译器中负责将程序分解为一个一个符号的部分,一般称为“词法分析器”。

2022-06-06 09:38:54 387

原创 TortoiseSVN Client使用说明

TortoiseSVN是SVN的客户端,提供简单的图形化操作界面。

2022-06-06 09:26:16 3413

原创 阿里云部署SVN服务器

部署SVN服务器。

2022-06-05 16:03:23 1824

原创 阿里云ECS上Linux系统实例搭建FTP站点

在阿里云服务器上搭建FTP站点。

2022-06-05 15:39:41 1423 1

原创 人月神话(七)没有银弹-软件工程中的根本和次要问题、20 年后的人月神话

没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量级上的进步。

2022-06-05 14:50:35 1358

原创 人月神话(六)祸起萧墙、另外一面

项目进度经常以一种难以察觉,但是残酷无情的方式慢慢落后。进度落后是难以识别、不容易防范和难以弥补的。公共应用程序的用户在时间和空间上都远离它们的作者,因此对这类程序,文档的重要性更是不言而喻! 对软件编程产品来说, 程序向用户所呈现的面貌和提供给机器识别的内容同样重要。文章剩余部分将对那些说教之辞一笔带过, 而把重点放在如何做(才能产生一篇优秀的文档)上。...

2022-06-05 14:42:31 196

原创 人月神话(五)未雨绸缪、干将莫邪、整体部分

每个骨干人员都仔细地保管自己工作生涯中搜集的一套工具集,保留着编辑器、排序、内存信息转储、磁盘实用程序等工具。 这种方法对软件项目来说是愚蠢的。首先,项目的关键问题是沟通,个性化的工具妨碍沟通。如何开发一个可以运行的系统?如何测试系统?如何将经过测试的一系列构件集成到已测试过、 可以依赖的系统?...

2022-06-05 14:34:40 389

原创 敏捷开发修炼之道 (四)敏捷调试、敏捷协作

记录解决问题的日志。警告就是错误。对于问题各个击破。报告所有异常。提供有用的错误信息。首先要做的是定期安排会面时间。架构师必须写代码。实行代码集体所有制。成为指导者,允许大家自己想办法。准备好后再共享代码。做代码复查。及时通报进展与问题。...

2022-06-05 12:58:04 446

原创 敏捷开发修炼之道 (三)敏捷反馈、敏捷编码

在开发过程中便细心“照看”代码。在编写代码时,每天付出一点小的努力,可以避免代码“腐烂”,并且保证应用程序不至变得难以理解和维护。记录解决问题的日志。警告就是错误。对于问题各个击破。报告所有异常。提供有用的错误信息。...

2022-06-05 12:42:45 449

原创 敏捷开发修炼之道 (二)学无止境、交付用户想要的软件

许多新技术都基于现有的技术和思想。它们会加入一些新的东西,这些新东西是逐步加入的量。需要了解一些跟踪变化的方法。你不可能“战胜”变化——无论它是设计、架构还是你对需求的理解。敏捷一一成功的软件开发方法一一取决于你识别和适应变化的能力。只有这样才有可能在预算之内及时完成开发,创建真正符合用户需求的系统。...

2022-06-05 11:11:55 419

原创 敏捷开发修炼之道 (一)高效软件开发之道、态度决定一切

敏捷开发宣言:一种把以人为本、团队合作、快速响应变化和可工作的软件作为宗旨的开发方法。度非常重要,包括你的和团队的。专业的态度应该着眼于项目和团队的积极结果,关注个人和团队的成长,围绕最后的成功开展工作。集中精力,你是为做事而工作。...

2022-06-05 10:58:11 536

原创 人月神话(四)削足适履、提纲挈领、未雨绸缪

系统编程需要花费多长的时间?需要多少的工作量?如何进行估计?由于规模是软件系统产品用户成本中如此大的一个组成部分,开发人员必须设置规模的目标,控制规模,考虑减小规模的方法。技术、周边组织机构、行业传统等若干因素凑在一起,定义了项目必须准备的一些文书工作。 ...

2022-06-05 10:29:45 354

原创 人月神话(三)画蛇添足、贯彻执行、为什么巴比伦塔会失败?

结构师的交互准则和机制、自律---开发第二个系统所带来的后果、巴比伦塔的管理教训、大型编程项目中的交流、大型编程项目的组织架构、文档化的规格说明---手册、形式化定义、直接整合、会议和大会、多重实现、电话日志、产品测试...

2022-06-04 21:23:53 449

原创 人月神话(二)外科手术队伍、贵族专制、民主政治和系统设计

外科手术队伍的成员与运作、概念的完整性、获得概念的完整性、贵族专制统治和民主政治、在等待时,实现人员应该做什么

2022-06-04 19:23:59 620

原创 人月神话(一)焦油坑、人月神话

编程系统产品、职业的乐趣、职业的苦恼、乐观主义、人月、系统测试、空泛的估算、重复产生的进度灾难

2022-06-04 18:43:56 918

原创 深入浅出操作系统(五)主引导程序的扩展(下)

FAT12根目录区记录了文件的起始簇号和长度通过查找根目录区能够确定是否存在目标文件FAT12文件数据的组织使用了单链表的思想

2022-06-04 16:38:59 543

Linux 网络开发必学课程(十四)课代码

Linux 网络开发必学课程(十四)课代码

2023-08-17

Linux 网络开发必学课程(十三)课代码

Linux 网络开发必学课程(十三)课代码

2023-08-17

Linux 网络开发必学课程(十二)课代码

Linux 网络开发必学课程(十二)课代码

2023-08-17

Linux 网络开发必学课程(十一)课代码

Linux 网络开发必学课程(十一)课代码

2023-08-17

空空如也

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

TA关注的人

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