C++技术类
Answer-3
学如春起之苗,不见其增,日有所长!
展开
-
C++异常处理类与自定义异常处理类
转自:http://blog.csdn.net/makenothing/article/details/43273137例1:自定义一个继承自excepton的异常类myExceptionC++标准中,定义在中的任何异常类都派生自exception Class,本例也只是简单地由exception继承,在try段抛出一个异常并捕捉。代码如下:[c转载 2017-03-29 17:32:05 · 4038 阅读 · 0 评论 -
sigslot库源码分析
言归正传,sigslot是一个用标准C++语法实现的信号与槽机制的函数库,类型和线程安全。提到信号与槽机制,恐怕最容易想到的就是大名鼎鼎的Qt所支持的对象之间通信的模式吧。不过这里的信号与槽虽然在概念上等价与Qt所实现的信号与槽,但是采用的仅仅是标准C++语法,不像Qt采用了扩展C++语言的方式(Qt需要使用moc工具对代码预处理之后,才能由标准的C++编译器进行编译)。众所周知,C++是转载 2017-01-11 17:03:19 · 339 阅读 · 0 评论 -
qt, connect参数,Qt::DirectConnection,Qt::QueuedConnection
connect用于连接qt的信号和槽,在qt编程过程中不可或缺。它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置。Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConn转载 2017-01-11 14:25:46 · 458 阅读 · 0 评论 -
用行为树的方式思考问题
这段时间做了很多和AI无关的事情,做了个Flash的3D引擎,用汇编写了些shader,做了很多引擎的工具,脚本,插件,游戏也发布了首个预告片,一年多的工作收获满满,职位从AI Engineer变成了Engineer(“专科大夫”到“全科大夫”?)。虽然很多工作看似和AI没什么关系,但做AI时的那些经验也带给了我不少思考和借鉴。我的博客里分享的最多的就是行为树(Behavior Tree),被浏览转载 2017-01-11 14:21:45 · 623 阅读 · 0 评论 -
站在巨人的肩膀上,C++开源库大全
程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX library : POSIX系统转载 2016-12-24 16:46:46 · 379 阅读 · 0 评论 -
谷歌c++风格摘抄
全部来源于网络,我感觉好的就复制粘贴了。【你必需防止头文件重复编译。】___H_foo/src/bar/baz.h => #ifndef FOO_BAR_BAZ_H_【inline函数要尽量简单。】函数最好小于10行。函数内包含循环、switch语句,不能定义为inline。过长inline函数体放在inl.h文件中。【include的顺序】当前c文转载 2016-12-15 13:43:59 · 279 阅读 · 0 评论 -
C++11新特性
C++11,先前被称作C++0x,即ISO/IEC 14882:2011,是目前的C++编程语言的正式标准。它取代第二版标准ISO/IEC 14882:2003(第一版ISO/IEC 14882:1998公开于1998年,第二版于2003年更新,分别通称C++98以及C++03,两者差异很小)。新的标准包含核心语言的新机能,而且扩展C++标准程序库,并入了大部分的C++ Technical转载 2016-09-17 17:34:13 · 290 阅读 · 0 评论 -
开发者都应该使用的10个C++11特性
摘要在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。auto 在C++11之前,auto关键字用来指定存储期。在新标准中,它的功能变为类型推断。auto现在转载 2016-09-17 17:32:37 · 317 阅读 · 0 评论 -
C++11新特性
程序员的自我修养_Will.zhang关注多核计算&高性能计算目录视图摘要视图订阅深度学习代码专栏 攒课--我的学习我做主 【hot】直播技术精选 C++112013-03-11 10:18 11849人阅读 评论(0) 收藏 举报转载 2016-09-17 17:17:57 · 684 阅读 · 0 评论 -
有限状态机/FSM
有限状态机(FSM)的设计与实现(一)有限状态机(FSM)是表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用。通常FSM包含几个要素:状态的管理、状态的监控、状态的触发、状态触发后引发的动作。本文主要阐述一下状态机的几种设计方法。1:switch case/if else设计方法curEvent = getEvent();转载 2016-04-12 16:39:51 · 366 阅读 · 0 评论 -
文本文件和二进制文件的区别
广义的二进制文件即指文件,由文件在外部设备的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件是一种由很多行字符构成的计算机文件。文本文件存在于计算机系统中,通常在文本文件最后一行放置文件结束标志。文本文件的编码基于字符定长,译码相对要容易一些;二进制文件编码是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。从本质上来说他们之间没有什么区别,原创 2016-01-29 09:20:48 · 512 阅读 · 0 评论 -
勤学如春起之苗,不见其增,日有所长!
“工作三年,并不等于拥有三年的工作经验。”这句话告诉我们每天都要思考自己当天所遇到的问题,记录下来,并且思考这个问题的解决办法,每一周或两周总结这些问题和解决办法,归纳思考问题根源,学习解决问题的细节和机制,求精求细,日积月累就是一笔财富,不然工作三年相当于一年的经验,我们追求的是经历一天就要有一天的进步。原创 2016-01-28 22:05:11 · 786 阅读 · 0 评论 -
C、C++和MFC中文件的操作
对文件读写的三种方法 1.C中 FILE *pFile=fopen("1.txt","w");fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile");//fseek(pFile,0,SEEK_SET);//fwrite("ftp:",1,strlen("ftp:"),pFile);转载 2016-01-28 16:42:28 · 422 阅读 · 0 评论 -
C++面试(七)
1、 谈谈你做过的项目,你主要负责哪个模块,代码量是多大(除去VC自动生成的那些代码)2、 参与项目的人数是多少?5、 谈谈你对C++三个特点的理解(简单描述一下)。6、 为什么要封装,如何解释他的用意。7、 多态的实现机制。8、 纯虚函数的概念,有什么作用。9、 友元函数的优点和缺点。10、 TCP/IP中服务器转载 2016-01-28 14:31:53 · 336 阅读 · 0 评论 -
虚拟继承和虚表
普通继承和虚拟继承:原创 2016-01-28 13:42:07 · 1172 阅读 · 0 评论 -
如何优化简历
http://mp.weixin.qq.com/s?__biz=MzAxMzUzNzYyNA==&mid=402350492&idx=1&sn=0e180c05248c845d6ed3e43f5006679e#rd转载 2017-03-29 22:14:00 · 429 阅读 · 0 评论 -
Windows 中_T和L
_T("")是一个宏,定义于tchar.h下。[1] #define _T(x) _ _T(x) #ifdef _UNICODE #define _ _T(x) L ## x #else /* ndef _UNICODE */ #define _ _T(x) x转载 2017-03-30 17:36:25 · 1182 阅读 · 0 评论 -
CRT
当C Runtime函数库于20世纪70年代产生出来时,PC的内存容量还很小,多任务是个新奇观念,更别提什么多线程了。因此以当时产品为基础所演化的C Runtime函数库在多线程(multithreaded)的表现上有严重问题,无法被多线程程序使用。利用各种同步机制(synchronous mechanism)如critical section、mutex、semaphore、event,可以转载 2017-03-31 15:58:50 · 1251 阅读 · 0 评论 -
Ubuntu14.04 VSCode工程在root下无运行,在非root无法修改配置文件
转自:https://blog.csdn.net/wenyun_kang/article/details/69389784vscode的配置文件被加上了root权限 把配置文件的root权限去掉就好了cd ~/.config sudo rm -rf ./Code/ 然后输入密码就好了猜测原因:vscode在打开的时候需要改动一些配置文件,但是启动的时候发现文件夹加了root权限...转载 2019-01-17 09:12:04 · 1697 阅读 · 0 评论 -
TLS线程局部存储--thread_specific_ptr
大多数函数都不是可重入的。这也就是说在某一个线程已经调用了一个函数时,如果你再调用同一个函数,那么这样是不安全的。一个不可重入的函数通过连续的调用来保存静态变量或者是返回一个指向静态数据的指针。 举例来说,std::strtok就是不可重入的,因为它使用静态变量来保存要被分割成符号的字符串。有两种方法可以让不可重用的函数变成可重用的函数。第一种方法就是改变接口,用指针或引用代替原先使用静态数据的地...转载 2018-07-26 17:40:28 · 327 阅读 · 0 评论 -
TLS--线程局部存储
转自:https://blog.csdn.net/u013761036/article/details/54960277这个东西并不陌生了,之前写过了一个关于这个的应用,利用静态TLS姿势实现代码段静态加密免杀或者所谓的加壳思路。地址在这:http://blog.csdn.net/u013761036/article/details/53967943今天就简单的整理下TLS的相关概念和常...转载 2018-07-26 17:36:30 · 442 阅读 · 0 评论 -
VS编译快捷键设置
1.编译当前文件----Alt+Z(生成.编译);2.编译当前项目----Alt+A(生成.仅生成项目);3.链接当前项目----Alt+X(生成.链接);4.生成选定内容----Alt+D(生成.生成选定内容);...原创 2018-04-25 09:07:54 · 4310 阅读 · 0 评论 -
面向切面编程--AOP(二)
转自:http://www.cnblogs.com/qicosmos/p/3154174.html(原创)c++11改进我们的模式之改进代理模式,实现通用的AOP框架c++11 boost技术交流群:296561497,欢迎大家来交流技术。本次要讲的时候如何改进代理模式,具体来说是动态代理模式,动态代理模式一般实现AOP框架,不懂AOP的童鞋看这里。我前面的博文也实转载 2018-02-02 17:22:07 · 184 阅读 · 0 评论 -
面向切面编程--AOP
转自:https://www.cnblogs.com/qicosmos/archive/2013/04/07/3003480.html(原创) C++ 轻量级AOP框架c++11 boost技术交流群:296561497,欢迎大家来交流技术。c++中开源的AOP框架AspectC++需要单独编译才能将切面的代码织入到核心逻辑代码中,感觉使用起来不方便,不能满足快速开转载 2018-02-02 17:19:39 · 274 阅读 · 0 评论 -
QPSQL driver not loaded
在用qt连接postgreSQL数据库时,出现驱动无法加载的情况,如下图:代码:mPgDataBase = QSqlDatabase::addDatabase("QPSQL");如下如下错误:解决方案:网上下载”libpq.dll文件“拷贝至运行文件路径下即可!原创 2017-09-26 16:29:24 · 3050 阅读 · 0 评论 -
关于跨dll的模板单例问题
C++的模板可以帮助我们编写适合不同类型的模板类,给代码的复用性提供了极大的方便。近来写了一个涉及单例的C++模板类,简化下来可以归结为以下的代码:1234567891011template typename T>class Singleton{转载 2017-03-31 17:07:09 · 2253 阅读 · 0 评论 -
C++模板-Traits
转自:http://blog.csdn.net/my_business/article/details/7891687介绍traits的文章很多,但感觉大部分文章的说明都很晦涩难懂,把一个并不很复杂的C++模板的应用描述的过于复杂。忍不住想把自己的理解跟大家分享一下,或许我也只是掌握了一点traits的皮毛而已,但也希望这些皮毛能略微抓住你的眼球,带给你一些启发。转载 2017-04-20 14:38:03 · 451 阅读 · 0 评论 -
聚合和组合的关系
转自:http://www.blogjava.net/lukangping/archive/2010/08/01/327693.html记得在当时学习uml总是不好分清聚合与组合的关系,找工作时特地复习了这块的内容,结果正巧被面试官问道,这两天又在搞这块的内容,对聚合与组合有了更清楚的了解:聚合:表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。如电脑和鼠标,就可以转载 2017-04-20 09:35:34 · 1281 阅读 · 0 评论 -
C++强大背后
在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括过程式、面向对象(object-oriented programming, OP)、泛型(generic programming, G转载 2017-04-05 15:17:50 · 363 阅读 · 0 评论 -
C++ 中export 关键字的尴尬处境
分离编译模式(Separate Compilation Model)允许在一处翻译单元(Translation Unit)中定义(define)函数、类型、类对象等,在另一处翻译单元引用它们。编译器(Compiler)处理完所有翻译单元后,链接器(Linker)接下来处理所有指向 extern 符号的引用,从而生成单一可执行文件。该模式使得 C++ 代码编写得称心而优雅。转载 2017-04-05 09:55:27 · 2205 阅读 · 0 评论 -
C++中堆和栈的完全解析
C++中堆和栈的完全解析内存分配方面:堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样代码 中的delete语句才能正确的释放本内存空间。我们常说的内存泄露,最常见的就是堆泄转载 2017-04-01 11:09:19 · 485 阅读 · 0 评论 -
C++中的Dll内存问题
这两天在做一个数据结构,使用树结构,两层,第一层的数据元素为第二层的n个分支遇到问题如下:1:使用vector在debug下运行正常,在release下源码运行正常封装后运行失败请教了多人,觉得可能是vector的使用问题,因为我将第一层封装为dll,而在第二层使用源文件,导致在第二层申请的内存在第一层释放时出现问题。2:为了避免vector的内存释放问题,自己写了转载 2017-03-31 17:34:40 · 1077 阅读 · 0 评论 -
C++编程日记
1、操作符“ > ” 重载必须以内联方式重载,否则编译时报错,原因暂时不详 !2、int** 可以用于动态创建二维数组 ;3、数组定义必须用常量,不可用变量 !原创 2016-01-28 13:41:37 · 280 阅读 · 0 评论 -
几个重要库函数的实现
面试官很喜欢让求职者写一些常用库函数的实现,有很多是和字符串相关的,有一些是关于内存拷贝的。一般,常会让写的函数有以下几个:strcpy , strncpy, memcpy。memset一般不会让去写,但这个函数也很有特点,有很多容易用错的地方。一并总结吧。1. strcpystrcpy函数的原型是:char * strcpy(char* dest, con转载 2016-01-27 11:21:49 · 418 阅读 · 0 评论 -
TCP解决connect函数的超时问题
在一个TCP套接口被设置为非阻塞之后调用connect,connect会立即返回EINPROGRESS错误,表示连接操作正在进行中,但是仍未完成;同时TCP的三路握手操作继续进行;在这之后,我们可以调用select来检查这个链接是否建立成功;非阻塞connect有三种用途:1.我们可以在三路握手的同时做一些其它的处理.connect操作要花一个往返时间完成,而且可以是在任何地方,从几个毫秒的局原创 2016-01-27 10:26:35 · 13598 阅读 · 3 评论 -
UML中关联,聚合,组合的区别及C++实现
类间关系在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义。在UML类图中,关系用类框之间的连线来表示,连线上和连线端头处的不同修饰符表示不同的关系。类之间的关系有继承(泛化)、关联、聚合和组合。(1)继承:指的是一个类(称为子类)继承另外的一个类(称为基类)的功能,并增加它自己转载 2016-01-06 16:42:40 · 558 阅读 · 0 评论 -
串口通信参数
串口是一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus(USB)混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串转载 2016-01-06 15:37:51 · 1028 阅读 · 0 评论 -
预处理指令 #pragma 的使用
#pragma comment( comment-type [,"commentstring"] )该宏放置一个注释到对象文件或者可执行文件。comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。commentstring是一个提供为comment-type提供附加信息的字符串,Remarks:1、compiler:放转载 2016-01-22 16:34:37 · 355 阅读 · 0 评论 -
在MFC程序中增加控制台窗口
MFC程序中,如果想要输出调试信息,我们一般都是TRACE或者使用LOG文件,都不是很方便,第一个需要我们在调试状态下,第二个也要配置麻烦而且不直观。而使用Console来显示调试信息应该是更好的选择。下面介绍几种在MFC程序中,使用控制台来输出调试信息。1. 我们可以自己创建一个命令行窗口,在主程序的初始化的时候调用AllocConsole()函数。相应的退出的时候调用FreeConso转载 2016-01-22 16:11:35 · 1549 阅读 · 0 评论 -
线程同步之条件变量
一、引言假设有一个任务,由我和张三共同完成。张三把寄来的文稿初步审阅后放入一个队列,我负责将这个队列中的文稿进行审批,决定刊登与否。张三审阅一份文稿需要15分钟,我处理一个文稿需要2分钟。如果将张三和我看作两个线程,那么我们共享一个队列的数据。按照一般的多线程思路,他每隔一段时间往队列中放入数据,我每隔一段时间检查一下队列中是否有数据,若有,则处理之。若我们按照上面的方式工转载 2016-01-04 22:34:04 · 707 阅读 · 0 评论