- 博客(24)
- 收藏
- 关注
原创 史上最权威最详细的python中import机制
5.The import systemPython code in onemodulegains access to the code in another module by the process ofimportingit. Theimportstatement is the most common way of invoking the import machinery, but it is not the only way. Functions such asimportlib...
2021-08-25 11:12:40
1050
原创 设计模式之模板方法
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。...
2021-06-28 16:48:12
114
原创 面向对象程序设计
基于对象面向对象推荐书籍语言部分:《c++ primer》、《effective c++》标准库:《the c++ standardlibrary》、 《STL 源码剖析》
2021-05-30 11:28:57
137
原创 谈谈设计模式
谈谈设计模式软件设计中的设计模式是什么?设计模式是针对某一类问题的一套很好的解决方案设计模式的目标:复用软件设计的天敌:变化(需求的变化、 人员的变化、 平台的变化、 环境的变化)面向对象程序设计...
2021-05-30 11:23:45
102
原创 单例模式及最佳c++实现
单例模式及其c++实现单例模式是一种广泛使用的模式,顾名思义就是一个类只能有一个实例,并提供一个全局访问点,该实例被程序所有模块所共享。有很多地方都有这样的功能模块,如系统的日志输出,资源管理器等单例模式分类饿汉模式(在某些场景实用)懒汉模式(适用各种场景)在需要的时候创建对象懒汉模式需要引入同步机制才可以保证线程安全#include <iostream>class Singleton{public: static Singleton& GetSi
2021-05-29 18:47:08
241
原创 c语言与c++的区别
c语言与c++的区别1、 c是面向过程的语言,c++是面向对象的语言2、 struct的不同:c中struct只包含数据成员,c++中还包含函数3、 const的作用不同
2021-05-29 12:45:14
151
原创 如何解决安装Win10 和Ubuntu 双系统出现 BitLocker recovery问题?
如何解决安装Win10 和Ubuntu 双系统出现 BitLocker recovery问题?1. 出现问题由于笔者在Win10 系统上安装Linux 的 Ubuntu 18.04 双系统时,重启切入Win 10 系统时出现提示界面需要输入BitLocker 恢复密钥才能恢复正常启动Win 10系统切换。如下图。2. 解决方案首先在另外一台电脑或移动手机上通过Google 查找 How to retrieve bitlocker key, 然后进入微软Microsoft Support 入口
2021-05-29 09:59:13
7001
1
原创 c++11新特性
c++11新特性1、 auto类型推导2、 nullptr:初始化空指针3、 智能指针(unique_ptr、 shared_ptr、 weak_ptr)4、 lamda表达式5、 long long类型6、 using 别名7、 decltype类型推导8、 返回类型后置9、 列表初始化10、 for循环...
2021-05-27 14:32:25
98
原创 谈谈对面向对象三大基本特征的理解
谈谈对面向对象三大基本特征的理解面向对象三大基本特征:封装、 继承、 多态封装可以隐藏代码实现的细节,使得代码模块化;继承可以扩展已存在的代码模块;它们的目的都是代码重用;而多态实现了另一个目的:接口重用。封装封装是面向对象程序设计的第一步,封装就是将数据和函数等集合在一个一个单元中(我们称之为类)。被封装的对象被称为抽象数据类型。封装的意义 封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护
2021-05-25 16:00:10
6490
原创 c++多态实现的机制
c++多态实现的机制1、 什么是多态?顾名思义就是同一事物在不同场景的不同形态。静态多态是在编译期间编译器可以根据实参来确定的,主要体现在两个方面函数重载和泛型。函数重载int Add(int left, int right){ return left + right;}double Add(double left, int right){ return left + right;}int main(){ Add(10, 20); A
2021-05-25 15:07:33
280
原创 c语言之输出
c语言之输出1、 printf功能:格式化输出函数,一般用于向标准输出设备按照规定的格式输出信息头文件:<stdio.h>调用格式:printf("格式化字符串",<参量表>)其中格式化字符串包括两部分:一部分是正常字符串,这些字符串按照原样输出;另一部分是格式化规定字符,以“%”开始,后面跟一个或几个格式化字符,用于控制输出格式。参量表是要输出的一系列参数,参数的个数和格式必须和格式化字符串一致。...
2021-05-25 11:31:43
1200
原创 c/s 和b/s模型对比
c/s 和b/s模型对比c/s: 可以缓存大量数据,协议选择灵活,速度快,安全性差,需要安装客户端,不能跨平台b/s: 不能缓存大量数据,严格遵守http,安全性好,跨平台,使用方便,开放工作量小...
2021-02-20 09:24:04
254
原创 c++之构造函数详解
C++构造函数的理解相对于C语言来说,C++有一个比较好的特性就是构造函数,即类通过一个或者几个特殊的成员函数来控制其对象的初始化过程。构造函数的任务,就是初始化对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。构造函数的语法构造函数的名字必须和类名相同,与其他函数不一样的是,构造函数没有返回值,而且其必须是公有成员,因为私有成员不允许外部访问,且函数不能声明为const类型,构造函数的语法是这样的:class Test{ public: ..
2021-02-19 11:33:32
426
1
原创 c++之虚析构函数的必要性
c++之虚析构函数的必要性构造函数不能是虚函数,主要有两个原因:1、 派生类不能继承基类的构造函数,因此把基类的构造函数声明为虚函数没有意义,无法实现多态;2、 c++中的构造函数用来在创建对象时进行初始化工作,在执行构造函数的时候,对象尚未创建完成,虚函数表这个时候还不存在, 也没有指向虚函数表的指针,所以此时还无法查询虚函数表。也就不知道调用哪一个构造函数。析构函数用来在对象销毁时进行清理工作, 可以声明为虚函数,有时必须声明为虚函数(作为基类时)。#include&..
2021-02-19 10:25:37
393
原创 git 查看提交
概述git查看提交,掌握这些就足够了!查看提交记录#git log查看某个文件的提交记录#git log 文件名(要包含路径)如果向更进一步查看每次提交的内容#git log -p 文件名(要包含路径)查看某个提交的文件记录#git whatchanged 提交id查看某次提交中的某个文件变化#git show 版本号 文件名(要包含路径)...
2021-01-28 10:28:55
758
原创 mysql
mysql数据库的好处:1、 可以持久化存储数据2、 有一套完整的管理系统,便于查询DB(database):存储数据的“仓库”。它保存了一些列有组织的数据。DBMS(database management system):数据库是DBMS创建和操作的容器。SQL(structure query language):专门用来与数据库管理系统交流的语言。SQL的优点:1、 不是某个特定数据库供应商专有的语言,几乎所有的DBMS都支持SQL...
2021-01-22 18:17:49
106
原创 git撤销提交
git撤销提交1、 git commit之后,想撤销commit写完代码后,我们一般这样#git add . //添加所有文件#git commit -m "本功能全部完成"执行完commit后,发现写的东西有问题,想撤销这次提交,怎么办?可以执行下面操作:#git reset --soft HEAD~1这样就撤销了刚刚提交,但是代码依然还在工作空间保留。HEAD~1代表最近一次提交,HEAD~N代表最近n次提交现在我对上面命令进行解释,...
2021-01-22 15:47:20
855
原创 UML用例图
UML用例图概述用例图就是编写需求说明时经常用到的需求表达方式,向开发、测试同事说明需求中用户和系统功能单元之间的关系。用例图的结构主要分为参与者、用力、参与者与用例之间的关系。参与者:系统外部与系统发生交互的人或事物。需要注意的是人指的是参与者与系统发生交互的角色,不指代具体的人。用例是系统外部可见的功能单元,是系统参与者在系统中做某件事从开始到结束的一系列活动集合,以及结束时应该返回的可观测的、有意义的结果。用例的特征:1、 用例一般是动宾结构2、 用例是相...
2021-01-22 11:09:15
256
原创 程序员的方法论
编程语言的学习方法1、 掌握编程思维,编程思维比语法知识更重要2、 不要刻意记忆语法规则3、 在循序渐进的项目实战中学习4、 不断试错,在反复错误中学习,及时复盘总结遇到问题的解决方法1、自己先思考2、求助工具(百度、谷歌、stackflow)3、求助外援4、把问题的解决方案记录下来。(建议使用博客)写技术博客的重要性1、 记录成长轨迹2、扩大个人影响力(出书、 猎头、 合作)3、提高自己的写作水平...
2021-01-15 16:30:00
264
1
原创 git的必备知识
git是目前世界上最优秀的版本控制系统,所以作为程序员,必须精通git这个工具。这篇文章就是根据个人经验总结出来的git必备知识。git工作流程图
2021-01-15 16:04:59
157
4
原创 $‘\r‘: 未找到命令的解决办法
$'\r': 未找到命令的解决办法在执行shell脚本的时候,会出现‘$’\r’: 未找到命令’错误。绝大多数情况下是因为在window系统中写的shell脚本,然后上传到服务器执行造成的。解决办法如下:1、安装dos2unix#yum install dos2unix2、使用dos2unix对脚本转换#dos2unix xxx.sh转化后的脚本就可以在Linux上正常使用了。...
2021-01-12 16:39:20
2340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人