自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zrf的专栏

每天多学一点,每天多学会爱一点,多学会疼爱,多学会感恩与呵护!!

  • 博客(43)
  • 资源 (6)
  • 收藏
  • 关注

原创 opengl的学习网站

1、opengl wiki收集了大量opengl相关的信息、问题等。它是一个开放的平台,任何人都可以在上面提交信息,但应当是opengl相关的。网址:https://www.khronos.org/opengl/wiki/2、shadertoy有很多不错的着色器使用案例,可以对代码进行修改、调试。网址https://www.shadertoy.com/3、LearnOpenGL-CN也是很不错的学习地方,也有中文支持,讲解也很细致。https://learnopengl-cn.readthe

2020-08-06 15:09:38 716

原创 设计模式之模板模式(Template)

方法:定义操作中的骨架,而将一些步骤延迟到子类中实现;#include <iostream>using namespace std;class Base{public: virtual void method1() = 0; virtual void method2() = 0;};class A : public Base{public: void method1

2017-12-29 15:20:33 220

原创 设计模式之迭代模式(Iterator)

优点:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示;template<class Item>class Iterator{public: virtual void first() = 0; virtual void next() = 0; virtual Item currentItem() = 0; virtual bool is

2017-12-29 14:11:44 276

原创 设计模式之备忘录模式(Memento)

作用: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将改对象恢复到原先保存的状态。#include <iostream>#include <vector>using namespace std;//保存的信息class Memento{public: Memento(int vit, int att, int def) :_

2017-12-20 13:49:28 168

原创 设计模式之中介者模式(Mediator)

优点:允许我们公开一个统一的接口,系统的不同部分可以通过该接口进行通信,而不需要显示的相互作用; 适用场景:一个系统的各个组件之间看起来有太多的直接关系,这个时候则需要一个中心控制点,以便各个组件可以通过这个中心控制点进行通信;#include <iostream>#include <string>using namespace std;class Mediator;class Person

2017-12-07 17:31:57 140

原创 设计模式之策略模式(Strategy)

策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。使得算法可独立于使用它的客户而变化。也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异。用策略模式来封装算法,效果比较好 “`include using namespace std;//抽象接口 class Algorithm { public: virtual void replace

2017-12-04 15:37:17 148

原创 设计模式之访问者模式(Visitor)

优点:易于添加那些目前尚未考虑到的方法(扩展功能) 缺点: 1)访问者角色不适合具体元素角色经常发生变化的情况。 2)访问者角色要执行与元素角色相关的操作,就必须让元素角色将自己内部属性暴露出来,这就破坏了元素角色的封装性。访问者和被访问的对象的耦合性很大。 3)元素与访问者之间能够传递的信息有限,这往往也会限制访问者模式的使用。(因为访问者不

2017-11-30 10:42:31 136

原创 osg获取纹理节点纹理方法

class TextureVisitor:public osg::NodeVisitor { public: TextureVisitor(); TextureVisitor(QString dirPath); void apply(osg::Node& node); void apply(osg::Geod

2017-11-28 18:09:56 3400

原创 设计模式之状态模式(State)

作用:一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为;#include <iostream>using namespace std;class War;class State{public: virtual void start(War *){} virtual void continued(War *){} virtual void end(

2017-11-28 18:06:56 146

原创 设计模式之命令行模式(Command)

优点: 1、容易设计出一个命令队列 2、可以设计出请求的撤销与重做 作用: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作#include <iostream>using namespace std;#include <vector>//用来声明执行操作的接口class Command{public: virt

2017-11-22 16:44:34 607

原创 设计模式之观察者模式(Observer)

优点: 1、目标和观察者之间松耦合#include <iostream>#include <list>using namespace std;//观察者class Observer{public: virtual void update(int) = 0;};//目标class Subject{public: virtual void attach(Observe

2017-11-21 14:39:07 144

原创 设计模式之代理模式(Proxy)

1、远程代理 优点:逻辑与实现彻底解耦//接口class A{public: virtual ~A() = 0 {} virtual void request() = 0;};//业务执行者A1class A1 : public A{public: void request() { cout<<"A1 request"<<endl;

2017-11-16 15:13:34 151

原创 设计模式之外观模式(Facade)

优点:1)为复杂的子系统提供了简单接口 2)提高子系统的独立性 3)在层次结构中,可以使用Facade模式定义系统中每一层的接口#include <iostream>using namespace std;//子系统class A{public: void run(){cout<<"run A"<<endl;}};class B{pub

2017-06-30 15:00:46 180

原创 设计模式之享元模式(Flyweight)

优点:1)大幅度地降低内存中对象的数量#include <iostream>#include <vector>using namespace std;class FlyWeight{public: virtual ~FlyWeight(){} string getInstrinsicState(){return _state;} virtual void Operat

2017-06-30 14:39:56 152

原创 设计模式之组合模式(Composite)

优点:1)组合模式使基本对象组合成复杂对象,复杂对象继续组合,形成递归 2)组合模式可以让客户使用一致的组合对象和单个对象#include <iostream>#include <vector>using namespace std;//纯虚函数,只提供接口,没有默认的实现class Base{public: virtual void Operation(){

2017-06-29 17:51:21 191

原创 设计模式之装饰模式(Decorator)

优点:1)动态地给对象添加一些额外的职责 2)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责#include <iostream>using namespace std;class Base{public: virtual void Operator() = 0;};class A : public Base{public: void

2017-06-29 16:12:49 198

原创 设计模式之适配器模式(Adapter)

优点:1)使用已存在的类,接口不符合要求 2)创建复用的类,该类可以与其它不相关的类协同工作#include <iostream>using namespace std;class Target{public: virtual void Interface() = 0;};class Adapter{public: void SpecificInter

2017-06-29 14:54:58 209

原创 设计模式之桥接模式(Bridge)

优点:1)将可能变化的部分单独封装起来,使得变化产生的影响最小 2)抽象部分和实现部分单独变动,并且每一部分的扩充都不会破坏桥接模式搭起来 的架子 缺点:1)结构比较复杂 2)抽象类的修改影响到子类#include <iostream>using namespace std;//操作系统class OS{public: virtu

2017-06-29 14:36:16 166

原创 QObject源码分析

/*QObject.h*/class Q_CORE_EXPORT QObjectData {public: virtual ~QObjectData() = 0; QObject *q_ptr; QObject *parent; QObjectList children; uint isWidget : 1; uint blockSig : 1

2016-05-22 10:08:33 1492

转载 c++面试题

1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之

2016-05-11 10:19:12 636

原创 C++ 基础

1.当C++创建一个空类的时候,编译器会默认创建6个函数:构造函数,析构函数,赋值函数,拷贝函数,取址运算符,取址运算符constclass Empty{public:Empty{}~Empty(){}Empty(const Empty &){}Empty &operator=(const Empty &){}Empty *operator&(){}cons

2016-05-09 16:56:11 226

原创 C++学习曲线

C++缺点之一,是相对许多语言复杂,而且难学难精。许多人说学习C语言只需一本K&R《C程序设计语言》即可,但C++书籍却是多不胜数。我是从C进入C++,皆是靠阅读自学。在此分享一点学习心得。个人认为,学习C++可分为4个层次:第一层次,C++基础:挑选一本入门书籍,如《C++ Primer》、《C++大学教程》、或Stroustrup撰写的经典《C++程序设计语言》或他一年半前的新作《C+

2016-05-09 16:47:17 3316 1

转载 最全面的 C++ 资源、框架大全

http://www.codeceo.com/article/cpp-resource-framework.html

2016-05-09 15:50:42 340

原创 设计模式之原型模式(Prototype)

原型模式:优点:使用拷贝比new一个对象的开销要小代码示例:Prototype.h#ifndef PROTOTYPE_H#define PROTOTYPE_H/** *1、声明一个抽象基类,并定义clone()函数为纯虚函数。 *2、实例化各个子类,并且实现复制构造函数,并实现clone()函数 */class Resume{public:

2016-05-06 12:32:47 706

原创 设计模式之建造者模式(Builder)

建造者模式:优点:1.隔离了构建的步骤和具体的实现,为产品的具体实现提供了灵活性2.封装和抽象了每个步骤的实现,实现了依赖倒置原则3.封装了具体的步骤,减少了代码冗余缺点:1.要求构建的产品不能剧烈变化代码示例:Builer.h#ifndef BULIDER_H#define BULIDER_Hclass Builder{public:

2016-05-06 12:24:20 440

原创 设计模式之单例模式(Singleton)

单例模式(Singleton)优点:1.提供了对唯一实例的访问方法2.内存中只存在一个对象,节约系统内存3.允许可变数目的实例缺点:1.由于没有抽象层,因此扩展有很大的困难2.单例类的职责过重,在一定程度上违背了“单一职责原则”代码示例:Singleton.h#ifndef SINGLETON_H#define SINGLETON_Hc

2016-05-06 12:11:18 310

原创 设计模式之抽象工厂模式(AbstructFactory)

抽象工厂模式(AbstructFactory)优点:1.可以支持不同类型的产品,使得产品的灵活性更强2.可以很方便的一族中间的不同类型的产品缺点:结构过于臃肿,如果产品类型过大,就会难以管理代码实现:AbstructFactory.h#ifndef ABSTRUCTFACTORY_H#define ABSTRUCTFACTORY_H/*ProductA

2016-05-06 11:58:19 589

原创 设计模式工厂方法(FactoryMethod)

工厂方法:优点:基本与简单工厂一致,但是遵循封闭-开放原则,灵活性更强缺点:与简单工厂差不多代码实现:FactoryMethod.h#ifndef FACTORYMETHOD_H#define FACTORYMETHOD_Hnamespace FactoryMethod {/*Product*/class AbstrcutBase{public:

2016-05-06 11:42:48 265

原创 设计模式之简单工厂(SimpleFactory)

基本的设计模式分类:创建型模式:负责对象的创建结构型模式:处理类与对象之间的组合,可以解决继承依赖性的问题行为型模式:类与对象交互中的职责分配,可以解决组件间如何交互,隔离变化简单工厂模式(SimpleFactory)优点:1.隐藏了对象创建的细节,将产品延迟到子类中实现2.方便添加新的子类产品,只需要修改工厂类传递的值即可3.遵循依赖倒转的原则缺点:

2016-05-06 11:34:52 385

原创 获取目录下所有文件(C/C++)

#include #include #include void get_file_name_list(string path , list &file_list){ int count = 0; struct dirent* ent = NULL; DIR *pDir; char dir[512]; struct stat statbuf;

2015-12-29 10:43:42 418

原创 日志文件

test.hextern void writelog(QString name, QString msg);test.cppvoid writelog(QString name, QString msg){ QString date = QString("FileDataProcessor") +" "+ QDateTime::currentDateTime().toStri

2015-12-21 15:13:01 453

原创 队列_单例模式

数据队列,一端接收数据,一端发送数据。用于不同线程的数据共享

2015-12-21 13:19:32 1158

原创 Qt 5.3.2在周立功M3352开发板的移植记录

1.一般板子上都带有配套的交叉编译,没有的话,可以从网上下一个。交叉编译器的放在/opt/tools/arm-2011.03/bin2.到www.qt-project.org下载QT5.3.2的源代码qt-everywhere-opensource-src-5.3.2.tar.gz。3.解压到当前文件夹。tar xzvf qt-everywhere-opensour

2015-03-04 16:38:53 4607

转载 Qt StyleSheet样式表实例

在涉及到Qt 美工的时候首先需要掌握CSS 级联样式表。下面将通过几个例子来介绍一下怎样使用Qt中的部件类型设计。自定义的前台背景与后台背景的颜色:如果需要一个文本编辑器的背景变为黄色, 下面是代码行:qApp->setStyleSheet("QLineEdit { background-color: yellow }");针对一个对话框的内容中使用QLineEdit以及QLine

2014-11-15 17:26:18 9511

转载 qt样式表学习

1.何为Qt样式表

2014-11-15 11:50:54 1594

原创 qt分割字符串

QString x = "Nine pineapples";QString y = x.mid(5, 4); // y == "pine"QString z = x.mid(5); // z == "pineapples"

2014-10-17 10:55:39 1032

原创 qt5实现串口通信

源代码mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include #include "mythread.h"namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{

2014-10-17 10:39:03 2492

转载 C语言字符串操作总结大全(超详细)

1.字符串操作

2014-07-15 15:54:58 343

原创 linux open

int open(const char *pathname, int );

2014-07-06 18:00:10 394

原创 linux read/write

ssize_t read(int fd, void *buf, size_t count );

2014-07-06 17:59:52 340

libffmpeg_3.4.2.r91261_msvc14.zip

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。 FFmpeg是在 Linux 下开发出来的,但它可以在包括 Windows 在内的大多数操作系统中编译。

2020-12-09

More Exceptional c++ 中文版

More Exceptional C++是Exceptional C++的续篇。根据多年程序开发的实践经验、Herb Sutter向C++程序员提供了久经考验的程序设计技术和行之有效的解决方案,这些技术和方案对设计从小型工程到企业级应用的现代软件系统大有裨益。

2018-09-18

Python编程入门 第3版

Python编程入门 第3版 一本不错的python入门书 本书是一本针对所有层次的Python 读者而作的Python 入门书。

2018-01-05

More Effective C++ 清晰

More Effective C++ 中文版,经典的C++学习资料,有助于提高C++编程能力

2017-12-19

More Exceptional C++中文版

More Exceptional C++ 中文版,有目录,经典的C++学习资料,有助于提高C++编程能力

2017-12-19

ubuntu下 服务器 和 客户端

ubuntu下 服务器 客户端 log日志 断线重连 等等

2015-12-31

空空如也

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

TA关注的人

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