代码随笔
xunshuidezhu
这个作者很懒,什么都没留下…
展开
-
git cookbook-最佳实践
git 最佳实践总结一下日常工作中的git的使用实践使用场景:多人协同开发同一个项目模块需要解决冲突,越早解决冲突越好本地master分支最好经常pull,越频繁的把远程master分支merge到本地Master,越能减少冲突的出现git的每次commit都是一个全量数据,svn每次提交都是一个增量数据git 的每次commit都应该是一个有意义的可执行的全量代码,而不应该是一些fix bug的提交如果修改了代码还不想commit记录,用commit --amend修改commit记原创 2020-08-04 14:24:37 · 312 阅读 · 0 评论 -
c++ pimpl编程技法
之前写过一次关于pimpl的博文,最近写代码又频繁遇到这个,再次总结一次.先来看一段代码,这段代码中无论Impl中的print函数如何更改,客端调用Shape的print接口都不用更改,因此降低了接口的耦合性.屏蔽掉了接口的具体实现方式.另一个作用就是降低了头文件之间的依赖关系,大大降低编译时间#include <bits/stdc++.h>using namespace...原创 2019-11-24 14:57:28 · 181 阅读 · 0 评论 -
operator++()与operator++(int)以及前置后置递增与左值右值的关系
如果需要重载++或者--,编译器怎么确定是前置还是后置,其实前置后置是不同的写法。先上结论,operator++()是前置也就是++i,operator++(int)是后置也就是i++。++i返回的是引用,前置递增、递减运算符返回的是左值,后置递增,递减返回的是右值。上代码:class A {public: int a;public: A& oper...原创 2019-09-06 16:27:18 · 1030 阅读 · 0 评论 -
UML类图详解
UML类图在架构设计中还是很重要的,一篇总结类图很好的文章UML类图与类的关系详解虚线箭头指向依赖;实线箭头指向关联;虚线三角指向接口;实线三角指向父类;空心菱形能分离而独立存在,是聚合;实心菱形精密关联不可分,是组合;上面是UML的语法。在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization...转载 2019-08-06 10:57:25 · 409 阅读 · 0 评论 -
udp实现可靠传输
做项目正好需要用可靠传输UDP来做传输层,基本思路还是在应用层模仿TCP,超时重传,滑动窗口等机制,三次握手,四次挥手过于复杂,简化成了2次握手,仅确认SEQ或者ACK,如果没有收到正确的报文则重传报文。数据包在发送之前会先存到数据队列,实现缓存,每次发包从数据去取,超时重传时间,超时重传最大次数也要设置,以防止进程被阻塞。...原创 2019-07-23 22:00:48 · 276 阅读 · 0 评论 -
trivial,non-trival, pod
Trivial(平凡)和Non-Trivial(不平凡)是对于class(类)的或者类中的四个函数而言的: 1.构造函数 2.拷贝构造函数 3.赋值函数 4.析构函数Trivial其中Trivial(平凡)的概念本人的理解是无意义的,Trivial是相对于Non-Trivial而言的。Non-Trivial对于Non-Trivial而言的,如果上面四种函数满...原创 2019-07-15 14:08:22 · 1051 阅读 · 0 评论 -
gcc编译之预宏定义 -D 相当于所有文件#define
GCC编译时增加宏定义-D<标识符>,相当于#define <标识符>,可以在遇到条件编译时执行。#ifdef <标识符> //条件编译内容#endif例子: 搭配gcc编译命令:gcc -DDEBUG -g -o main.out main.c (注意-D<标识符>应该紧跟gcc后面,-o等指令前面)main.c#in...原创 2019-07-09 10:58:25 · 949 阅读 · 0 评论 -
c/c++ #头文件路径寻找 -I指令与系统默认路径/usr/include,/usr/local/include...
C/c++中可以通过#include <stdio.h>和#include "stdio.h",区别是:#include <stdio.h>,直接到系统指定目录去查找头文件。#include "stidio.h",会先到当前目录查找头文件,如果没找到在到系统指定目录查找。gcc编译时查找头文件,按照以下路径顺序查找:1. gcc编译时,可以设置-I选项以指定...原创 2019-07-09 10:54:14 · 8909 阅读 · 0 评论 -
随笔一:子类继承与构造函数,析构函数,纯析构函数
今天写代码遇到了一个问题,在链接期编译器报错"undefined reference to vtable...",这个错误一般是由于有虚函数生命但未被定义,因此在虚函数表中找不到reference。然而我报错的这个类中根本就没写虚函数啊,反复排查发现该类继承了一个factory类,为了将factory定义为接口,将其析构函数定义为了纯析构函数,子类继承父类的时候会调用父类的构造函数与析构函数,因此...原创 2019-06-19 15:28:35 · 148 阅读 · 0 评论