自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

转载 全网唯一UAVCAN中文教程(2)补充介绍CAN协议(1)can基础知识

待写

2021-04-30 13:02:17 3153 1

原创 C++高阶 C++绝对不要在析构函数里面抛出异常

五一待写

2021-04-29 10:05:35 1126

原创 C++高阶 论分离编译

五一待写。

2021-04-29 09:57:23 1117

原创 测试工具开发(2)写一个支持命令行参数解析的测试程序(C/C++实现)

xxx

2021-04-28 18:56:10 1118

原创 C++11 final禁用继承与虚函数重写

作用修饰类,使其无法被继承修饰虚函数,时期无法被派生类重写只能修饰这两个东西。代码演示//指定无法继承的类class Base final {};class Derived: public Base // compiler error: BaseClass is // marked as non-inheritable {};class Base{ virtual void fu.

2021-04-28 01:07:05 1045 2

原创 C++ STL教程(7)std::pair使用

xxx

2021-04-25 15:56:18 1563 1

原创 设计模式C++实现40讲(7)组合模式

概念组合模式,就是将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式(Composite)将小对象组合成树形结构,使用户操作组合对象如同操作一个单个对象。组合模式定义了“部分-整体”的层次结构,基本对象可以被组合成更大的对象,而且这种操作是可重复的,不断重复下去就可以得到一个非常大的组合对象,但这些组合对象与基本对象拥有相同的接口,因而组合是透明的,用法完全一致。我们这样来简单的理解组合模式,组合模式就是把一些现有的对象或者元素,经过组合

2021-04-23 16:03:12 1996 4

原创 设计模式C++实现40讲(6)状态模式--状态机的面向对象设计

文章目录前言状态模式UML类图使用场合代码实现总结前言在实际开发中,我们经常会遇到这种情况;一个对象有多种状态,在每一个状态下,都会有不同的行为。那么在代码中我们经常是这样实现的。enum State { state1, state2, state3};void Action(State actionState){ if (actionState == state1) { // DoSomething } else

2021-04-23 12:02:46 976 3

原创 设计模式C++实现40讲(5)策略模式--实际使用最多的模式之一

文章目录概念应用案例实现设计思想概念上图的StrategyContext翻译为策略上下文,可以理解为调用策略的类。StrategyContext采用聚合的方式,包含一个指向策略基类Strategy的指针(为了实现多态)。可以通过修改Strategy指针,指向不同的具体策略类,来达到灵活变更行为的目的,也实现了策略和调用策略者的解耦。策略模式定义了一系列算法或者说行为(也就是策略),他们可以在运行时相互替换。通常把这些算法封装为一个个独立的类,形成一个“算法族”,这一族算法有相同的接口(继承于同一个父

2021-04-23 00:34:19 568 4

原创 C++模板元编程(8)模板类的继承

模板类的继承包括四种:1.普通类继承模板类大家要区分模板类和类模板的概念,模板类是类模板具体化后得到的类。template<class T>class Base {public: Base(T data) : data_(data) {}private: T data_;};class Derived: public Base<int> {public: Derived(int data) : Base<int>(data) {}

2021-04-21 00:16:14 921 2

原创 C++ yaml解析实战暨yaml-cpp库使用(4)封装成工具类

xxx

2021-04-19 11:01:31 563

原创 设计模式C++实现40讲(1)理解对象间的几种关系及UML图表示

xxx

2021-04-18 23:46:37 575 4

原创 设计模式C++实现40讲(0)什么是设计模式

设计模式一词最早是在建筑领域出现,每一模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。设计模式是前人总结的面向对象软件设计经验,合理使用合适的设计模式,我们相当于站在巨人的肩膀上,设计出更好的软件。一个设计模式包含:模式名(便于交流)问题(为了解决哪一类问题,或者说什么样的场景使用该模式)解决方案(设计的组成部分、之间的相互关系,各自的职责和协作方式)效果(评价和理解使用设计模式的好处)分类设计模式分为三种类型,共23个。(1)创建型模式:单例模式、抽象工厂模式

2021-04-18 23:32:52 569 5

原创 设计模式C++实现30讲(3)依赖倒置原则

#include #include using namespace std;class IEmployee { public: virtual string getDoor() = 0; virtual string getStreet() = 0; virtual string getCity() = 0; virtual string getPinCode() = 0; virtual string ge

2021-04-18 21:06:41 556 3

原创 设计模式C++实现30讲(4)接口分离原则

接口分离原则ISP(the Interface Segregation Principle ISP):有点类似于单一职责,不要将许多功能都塞在一个接口,可以将接口根据功能拆分成若干子接口。例如:#include <iostream>#include <string>using namespace std;class IEmployee { public: virtual string getAddress() = 0;

2021-04-18 16:50:10 561 3

原创 设计模式C++实现30讲(2)设计原则之单一职责 丨蓄力计划

概念单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。简述:单一职责原则可以看作是低耦合、高内聚在面向对象原则上的引申与扩展,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而极大的损伤其内聚性和耦合度。单一职责,通常意味着单一的功能,因此不要为类实现过多的功能点,以保证实体

2021-04-17 12:20:30 568 3

原创 设计模式C++实现30讲(1)面向对象的三大特性和七个原则

文章目录1、三大特性2、七大原则3、七点原则总结1、三大特性封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。继承:指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样

2021-04-17 12:17:55 559 3

关于二进制君Linux C/C++付费专栏的订阅方式

Linux C/C++知识体系专栏专栏下分若干子专栏,大家只需要订阅总专栏即可获得全部子专栏,分成子专栏是为了方便大家查阅。截图没办法截全,还有其他许多子专栏:

2021-04-17 11:53:45 570 1

原创 2021-04-15

2021-04-15 20:34:25 566

原创 linux运维(2)sudo命令及配置文件详解

sudo命令的作用是允许特定的用户以root用户或其他用户的身份执行命令。在不指定用户的时候,默认使用root用户,这也是我们大多数的使用场景:让命令以root身份执行。我们可以通过编辑/etc/sudoers文件来指定用户或者是组内用户可以以什么身份执行什么命令,哪些命令不需要输入密码,哪些命令需要输入密码。默认配置文件:## This file MUST be edited with the 'visudo' command as root.## Please consider adding

2021-04-15 17:07:41 556 1

原创 C++高阶 定义接口--纯虚函数和抽象类

xxx

2021-04-13 23:11:04 2856 4

原创 (6)继承与面向对象设计- Effective C++改善程序与设计的55个具体做法(Effective C++: 55 Specific Ways to Improve Your Programs)

文章目录32. 确定你的public继承塑模出is-a关系(Make sure public inheritance models “is-a”)33. 避免遮挡继承而来的名称(Avoid hiding inherited names)34. 区分接口继承和实现继承(Differentiate between inheritance of interface and inheritance of implementation)35. 考虑virtual函数以外的其它选择(Consider alternati

2021-04-13 00:12:44 2775 2

原创 C++高阶 指向类成员指针的用法

xxx

2021-04-12 09:57:05 2785 2

原创 C++高阶 基础类型转换的陷阱

1、非bool赋值给 bool:非0,则结果为true;0则为false。2、bool赋值给非bool:true结果为1,false为03、char在有些平台上不是有符号数,所以想表达有符号数时,最好用:signed char。4、if语句的判断接收bool类型,当我们传入非bool类型时,会转为bool类型...

2021-04-11 23:06:25 2776 1

原创 C++11 智能指针使用陷阱--编程经验

智能指针都是 值语意,要么是栈上对象,或者是其他对象的直接数据成员,或者是标准库容器的元素,几乎不会出现下面的用法:std::shared_ptr<Foo> p* = new shared_ptr<Foo>(new Foo);不要将其他的智能指针所指向的对象的地址值传给reset() 或者去生成一个新的智能指针对象,这种代码可能会通过编译,但是肯定会让程序崩溃不能像对原生指针那样,对智能指针进行一些自减和自增操作智能指针只能用来保存堆上分配的内存的地址 .

2021-04-11 13:26:20 573 1

转载 C++11 weak_ptr智能指针详解

xxxx

2021-04-10 20:49:06 567 3

原创 C++11 unique_ptr智能指针详解

xxxx

2021-04-10 20:47:56 581 3

原创 C++高阶 为什么C++语法这么复杂?

???????

2021-04-10 17:59:04 567

原创 C++11 9 个开始使用 C++11 的理由

这篇文章的时间比较久了,C++11在国内基本得到了普及,下一个被普及的标准是C++20。如果你的代码工作正常并且表现良好,你可能会想知道为什么还要使用C++ 11。当然了,使用用最新的技术感觉很好,但是事实上它是否值得呢?在我看来,答案毫无疑问是肯定的。我在下面给出了9个理由,它们分为两类:性能优势和开发效率。获得性能优势**理由1:**move语义(move semantics)。简单的说,它是优化复制的一种方式。有时候复制很显然是浪费的。如果你从一个临时的string对象复制内容,简单的复制指针

2021-04-10 15:45:56 576 3

原创 C++11 使用using代替typedef给类型起别名

大家都知道,在 C 中可以通过 typedef 重定义一个类型:typedef unsigned int uint_t;被重定义的类型并不是一个新的类型,仅仅只是原有的类型取了一个新的名字。因此,下面这样将不是合法的函数重载:void func(unsigned int);void func(uint_t); // error: redefinition使用 typedef 重定义类型是很方便的,但它也有一些限制,比如,无法重定义一个模板。想象下面这个场景:typedef std::map&

2021-04-10 15:23:38 1818 3

原创 C++11 default和delete的使用

在C++中,声明自定义的类型之后,编译器会默认生成一些成员函数,这些函数被称为默认函数。其中包括(1)(默认)构造函数(2)拷贝(复制)构造函数(3)拷贝(复制)赋值运算符(4)移动构造函数(5)移动赋值运算符(6)析构函数另外,编译器还会默认生成一些操作符函数,包括(7)operator ,(8)operator &(9)operator &&(10)operator *(11)operator ->(12)operator ->*(13)o

2021-04-10 13:16:23 612 2

原创 C++ yaml解析实战暨yaml-cpp库使用(3)yaml-cpp库生成yaml格式文件

#include <fstream>#include <yaml-cpp/yaml.h>#include <iostream>#include <assert.h>int main(){ YAML::Node node; assert(node.IsNull()); //初始化的节点是Null类型 node["key"] = "value"; //当你给它赋值键值对,它转变为Map类型 //node.forc

2021-04-10 00:36:02 833 4

原创 C++高阶 类的前置声明

在编写C++程序的时候,偶尔需要用到前置声明(Forward declaration)。下面的程序中,带注释的那行就是类B的前置说明。这是必须的,因为类A中用到了类B,而类B的声明出现在类A的后面。如果没有类B的前置说明,下面的程序将不同通过编译,编译器将会给出类似“缺少类型说明符”这样的出错提示。代码一:// ForwardDeclaration.h#include <iostream>using namespace std;class B; // 这是前置声

2021-04-09 16:56:09 2836 1

原创 C++ yaml解析实战暨yaml-cpp库使用(2)yaml-cpp库解析yaml格式文件

xxx

2021-04-08 23:59:03 624 2

原创 C++ yaml解析实战暨yaml-cpp库使用(1)认识yaml格式

介绍YAML 的意思是:“Yet Another Markup Language”(另一种标记语言)。YAML 的语法和其他高级语言类似,并且可以简单表达清单(数组)、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。YAML 的配置文件后缀为 .yml,如:runoob.yml 。基本语法大小写敏感使用缩进表示层级关系缩进不允许使用tab,只允许空格缩进的空

2021-04-08 23:22:14 636 2

原创 除了分支管理之外,我想说VisualSVN Server + TortoiseSVN天下无敌

2021-04-06 23:32:18 626

原创 VisualSVN Server太容易使用了,搭建自己的svn服务器

下载地址:https://www.visualsvn.com/

2021-04-06 23:15:19 603 1

原创 CMake基础教程(9)安装规则

xxxx

2021-04-05 22:44:14 604 1

原创 CMake基础教程(8)添加头文件目录,链接动态、静态库,生成目标

这是写cmake时最常用的操作,本文末尾给出一个综合范例供工作时参考。添加头文件搜索目录INCLUDE_DIRECTORIES语法:include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用。include_directories(../../../thirdparty/comm/include)AFTER和BEFO

2021-04-05 18:43:52 1193 2

原创 CMake基础教程(5)自定义编译选项

请先看前面教程。自定义编译选项CMake 允许为项目增加编译选项,从而可以根据用户的环境和需求选择最合适的编译方案。例如,可以将 MathFunctions 库设为一个可选的库,如果该选项为 ON ,就使用该库定义的数学函数来进行运算。否则就调用标准库中的数学函数库。修改 CMakeLists 文件我们要做的第一步是在顶层的 CMakeLists.txt 文件中添加该选项:# CMake 最低版本号要求cmake_minimum_required (VERSION 2.8)# 项目信息p

2021-04-05 17:11:37 1154 2

HI3519AV100最新SDK smaple

海思最新SDK 程序 版本V2.0.1.0 最新

2019-03-29

v4l2读取摄像头

v4l2读取摄像头,能在linux下编译,生成yuv文件,可以指定文件帧数

2018-01-30

RTP协议在嵌入式网络摄像机中的设计及实现.pdf

rtp,网络摄像头开发,描述了rtp推流,h264编码,v4l2视频流获取

2018-04-27

空空如也

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

TA关注的人 TA的粉丝

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