C++经验积累
Answer-3
学如春起之苗,不见其增,日有所长!
展开
-
深入理解C语言的函数调用过程
本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解。 先看一个最简单的程序:点击(此处)折叠或打开/*test.c*/ #include<stdio.h> intfoo1(intm,intn,intp) { intx=m+n+p; return x;...转载 2019-06-05 10:01:14 · 2516 阅读 · 0 评论 -
Qt5中文乱码解决方案
升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题第一种:在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式,然后在代码中,遇到中文字符,使用QStringLiteral("中文")进行修饰这种方式每次新建一个class就要切出去用记事本编辑一下实在麻烦,而且每个中文字符串都要用QS原创 2017-12-22 16:40:21 · 318 阅读 · 0 评论 -
UTF-8中的BOM-带还是不带?
转自:http://blog.csdn.net/fanpei_moukoy/article/details/21464305UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM。所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一下:把带有 BOM 的小端序 UTF-16 称作「Uni转载 2017-12-22 16:17:50 · 2028 阅读 · 0 评论 -
Qt之setCodecForLocale
setCodecForLocalevoid QTextCodec::setCodecForLocale ( QTextCodec * c ) [static]Set the codec to c; this will be returned by codecForLocale(). If c is a null pointer, the codec is reset to th原创 2017-12-22 16:02:21 · 1516 阅读 · 0 评论 -
Qt实现Word文档界面样式--QtitanRibbon
QtitanRibbon - Microsoft Ribbon for Nokia's Qt概念的实现QtitanRibbon组件实现了Microsoft Ribbon for Qt的概念,设计用于任何使用Qt开发的商业应用。这个组件和Qt一道为获取一些应用提供了一个难得的机会,这些应用在全球三大主要平台Windows、Linux和Mac OS X上都有现代化的外观和感觉。Qtitan原创 2017-12-04 17:03:29 · 11544 阅读 · 0 评论 -
“模块计算机类型“x64”与目标计算机类型“X86”冲突解决方案
最近在编译一款开源软件的时候,遇到了“模块计算机类型“x64”与目标计算机类型“X86”冲突的问题,网上查了好多资料,都是配置“链接器-》高级-》目标计算机”和选择X64平台编译器,可是怎么试都不行,最后发现是“命令行”里依然是“X86”的问题,下面给出详细的解决步骤:1、“链接器-》高级-》目标计算机”设置为"MachineX64 (/MACHINE:X64)"2、“链接转载 2017-09-30 15:23:02 · 40598 阅读 · 13 评论 -
关于跨dll的模板单例问题
C++的模板可以帮助我们编写适合不同类型的模板类,给代码的复用性提供了极大的方便。近来写了一个涉及单例的C++模板类,简化下来可以归结为以下的代码:1234567891011template typename T>class Singleton{转载 2017-03-31 17:07:09 · 2253 阅读 · 0 评论 -
VS2013正在等待所需操作完成
在用VS2013打开解决方案的时候,遇到”正在等待所需操作完成 ,此对话框将在操作完成后关闭“一直弹出显示,解决方案无法加载的情况!此时需要将与解决方案名字相同的文件全部相同(除解决方案文件除外)全部删除,然后关闭VS重新打开即可!原创 2017-09-26 10:42:45 · 6587 阅读 · 0 评论 -
VS调试启动"编辑并继续"功能
在VS调试的过程中,可能需要进行源代码的修改,一般的做法是先停止当前的调试,然后重新编译再进行调试,哪怕做的一点点小的改动,这样做很浪费时间,尤其是当项目比较大,程序的启动和初始化需要较长的时间的时候。其实VS本身自带有编辑并继续的功能,也就是说在调试的过程中,我们可以对源代码进行修改然后继续进行调试。当然这需要我们对VS进行相应的配置。1.检查是否打开了编辑并继续功能:工具-选项-调试-编辑原创 2017-08-15 11:43:58 · 9872 阅读 · 1 评论 -
面向对象设计之CRC卡片
1.什么是 CRC card?CRC (Class-Responsibility-Collaborator) Card是目前比较流行的面向对象分析建模方法。在CRC建模中,用户、设计者、开发人员都有参与,完成对整个面向对象工程的设计。CRC卡是一个标准索引卡集合,包括三个部分:类名、类的职责、类的协作关系,每一张卡片表示一个类。· 类 代表一系列对象的集合,这些对象是对系统转载 2017-04-21 16:41:09 · 14081 阅读 · 0 评论 -
C++继承详解:共有(public)继承,私有(private)继承,保护(protected)继承
转自:http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.htmlC++继承:公有,私有,保护公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员转载 2017-04-20 11:55:41 · 404 阅读 · 0 评论 -
聚合和组合的关系
转自:http://www.blogjava.net/lukangping/archive/2010/08/01/327693.html记得在当时学习uml总是不好分清聚合与组合的关系,找工作时特地复习了这块的内容,结果正巧被面试官问道,这两天又在搞这块的内容,对聚合与组合有了更清楚的了解:聚合:表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。如电脑和鼠标,就可以转载 2017-04-20 09:35:34 · 1281 阅读 · 0 评论 -
读过的最好的 C++ 开源代码
https://www.zhihu.com/question/21376384原创 2017-04-06 17:22:06 · 13697 阅读 · 0 评论 -
Qt字符编码认识
长期以来,很多人都清楚,一旦C++源码中直接使用了中文,这样的源码想要跨平台(I18N)会非常困难。随着:Windows下:MSVC2010成为主流Linux下:GCC升级到4.6C++中的中文问题 才算有了一个比较优雅的、跨平台的Workaround。(本文讨论编译器范围:GCC4.6+, MSVC2010sp1+ 。本文属于QString系列,但暂不涉及QStr转载 2017-12-22 17:14:12 · 332 阅读 · 0 评论 -
带你玩转Visual Studio——带你理解多字节编码与Unicode码
转自:http://blog.csdn.net/luoweifu/article/details/49382969上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的一个地方,我们对它进行了总结和归纳。本篇文章我们将继续讲解C+转载 2017-12-25 09:05:21 · 289 阅读 · 0 评论 -
Qt程序崩溃原因
Qt写的程序在执行过程中莫名其妙的出现崩溃,代码没有任何问题。最后发现原因是因为Release版本的程序链接了Debug版的lib文件,所以导致程序执行过程中莫名其妙的出现崩溃。此类错误出现了很多次了,查找起来异常困难,需要注意!...原创 2019-05-15 09:11:57 · 3160 阅读 · 3 评论 -
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 · 1699 阅读 · 0 评论 -
Windows下dump文件生成与分析
一、 生成Dump文件方式1.1任务管理器在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程。右键—>创建转储文件。 此时会在默认的目录下创建出一个dump文件。 可以看出,此种方法只适用于程序崩溃但没有立即自行退出的情况。倘若程序故障后自行退出,则此方法就难以应用。不过,我们可以在注册表中添加如下信息已确保系统在程序崩溃后自行保存一个dum...转载 2018-07-18 17:46:21 · 1015 阅读 · 0 评论 -
boost stacktrace堆栈打印
在windows下最方便的是minidump,其他2个平台麻烦不少,google-breakpad使用起来又太麻烦.最近boost1.65版本出了个stacktrace使用起来简单方便,只是无法看实际数据,对于快速定位BUG还是很有帮助的.要注意的是异常的处理需要写文件,应用重启之后再读取查看~ 用其他应用读取或者修改应用之后读取都会无法正确显示!!! 1 #pragma ...转载 2018-07-18 17:44:37 · 4670 阅读 · 0 评论 -
VS编译快捷键设置
1.编译当前文件----Alt+Z(生成.编译);2.编译当前项目----Alt+A(生成.仅生成项目);3.链接当前项目----Alt+X(生成.链接);4.生成选定内容----Alt+D(生成.生成选定内容);...原创 2018-04-25 09:07:54 · 4312 阅读 · 0 评论 -
svn冲突解决方案
解决方法步骤一、清空svn的队列1、进入到项目的.svn目录中,查看是否存在wc.db文件C:\Users\Administrator>D:D:\>cd D:\BBK_SVN\I3_TrunkD:\BBK_SVN\I3_Trunk>cd .svnD:\BBK_SVN\I3_Trunk\.svn>dir Volume in drive D has no labe...转载 2018-03-29 17:20:15 · 529 阅读 · 0 评论 -
VS2013+VSVIM
上世纪90年代后期出现了一股.com热潮,相信大家对其都有美好的回忆,那时使用CGI和Perl创建“动态的”网站,通过使用在Unix上的vi编辑器快速打字和格式化,这也包括后来使用的vi的复制版本vim。我可能是怀旧的,但我想念将这些编辑器放在我指尖的能力(不是伸手去拿鼠标)。几年之前,我被我购买的MacBook再一次引入到vim, 通过进一步研究,我发现了 VsVim ,这是vim的改编版本,与转载 2018-02-08 14:04:41 · 1494 阅读 · 0 评论 -
VS2013常用快捷键设置
Visual Studio 2013 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。VS 2013 中新增了很多提高开发人员工作效率的新功能,比如自动补全方括号、使用快捷键移动整行或整块的代码等;合理使用快捷键可以提高开发效率。但是Visual Studio提供的快捷键多如牛毛,那我们有没有必要掌握所有快捷转载 2018-02-06 16:34:04 · 1164 阅读 · 0 评论 -
Unity3D求向量间的夹角
如下图 Vector3 srcPos = new Vector3(0,0,0); Vector3 tarPos = new Vector3(0,0,-1); Vector3 srcRot = new Vector3(0,90,0); Quaternion srcQua = Quaternion.Euler(srcRot); Vector3 direction原创 2018-01-04 16:05:05 · 4678 阅读 · 0 评论 -
怎样才算得上合格的程序员
转自:http://blog.csdn.net/B9Q8e64lO6mm/article/details/78829370最近同一部门另一个项目组的一位程序员被“主动离职”了,虽然我未曾与这个程序员共事过,但是听过一两次他的内部分享,感觉技术还是挺厉害的。后来与一个消息灵通的同事聊天,才知道真正的原因是老大觉得A难以沟通,搞得其他程序、QA都怨声载道。工作这些年,身边的好多同事转载 2017-12-27 11:56:42 · 318 阅读 · 0 评论 -
给程序员的10条建议
1. 想清楚,再动手写代码刚入行的新手,为了展示自己的能力,拿到需求迫不及待地就开始上手写代码,大忌!2. 不交流,就会头破血流不爱说话和沟通,需求都理解错误了,最后做出来才发现,只能加班返工。3. 文档没人看,但还是要写文档的作用大部分时候不是用来沟通的,是用来做记录的,大部分需求还是通过口头沟通,但是不写文档做记录,后续就转载 2017-12-26 13:37:01 · 231 阅读 · 0 评论 -
设计模式六大原则
转自:http://www.uml.org.cn/sjms/201211023.asp目录:设计模式六大原则(1):单一职责原则设计模式六大原则(2):里氏替换原则设计模式六大原则(3):依赖倒置原则设计模式六大原则(4):接口隔离原则设计模式六大原则(5):迪米特法则设计模式六大原则(6):开闭原则设计模式六大原则(1)转载 2017-04-19 15:01:30 · 675 阅读 · 0 评论 -
如何理解const char*, char const*, char*const等
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to转载 2017-04-06 13:11:37 · 298 阅读 · 1 评论 -
UML序列图
UML学习(三)-----序列图 UML的模型中可分为两种,动态模型和静态模型。用例图、类图和对象图都是UML中的静态结构模型。而在UML系统动态模型的其中一种就是交互视图,它描述了执行系统功能的各个角色之间相互传递消息的顺序关系。序列图就是交互视图的一种形式。1、序列图的定义 序列图是对对象之间传送消息的时间顺序的可视化表示。序列图的主要用途是把用例表达的需求,转化为进一转载 2017-02-22 16:34:21 · 614 阅读 · 1 评论 -
提高C++程序运行效率的10个简单方法
本文以C/C++程序为例讲述了程序运行效率的10个简单方法,分享给大家供大家参考之用。具体分析如下:对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述如何优化程序提高程序运行效率的书籍也很少。但是这并不等于我们可以忽略程序的运行效率,下面就介绍一下本人积累的一些简单转载 2017-02-21 13:24:21 · 419 阅读 · 0 评论 -
C/C++程序员必须熟悉的开源库
作为一个经验丰富的Linux C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应用过, 但是回过头仔细想想,其实以前自己写过的这些代码,只能是在特定的项目或者特定的环境中使用, 对于自己来说, 在不同的项目中应用, 只需要复制代码, 改改也就可以了, 因为自己写的转载 2017-02-21 10:28:01 · 1087 阅读 · 0 评论 -
用行为树的方式思考问题
这段时间做了很多和AI无关的事情,做了个Flash的3D引擎,用汇编写了些shader,做了很多引擎的工具,脚本,插件,游戏也发布了首个预告片,一年多的工作收获满满,职位从AI Engineer变成了Engineer(“专科大夫”到“全科大夫”?)。虽然很多工作看似和AI没什么关系,但做AI时的那些经验也带给了我不少思考和借鉴。我的博客里分享的最多的就是行为树(Behavior Tree),被浏览转载 2017-01-11 14:21:45 · 623 阅读 · 0 评论 -
c++ 之类的前置声明
转自:http://blog.csdn.net/fjb2080/archive/2010/04/27/5533514.aspx 作者:清林,博客名:飞空静渡刚开始学习c++的人都会遇到这样的问题:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样: //a.h #include "b.转载 2017-01-09 13:27:41 · 343 阅读 · 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/C++框架和库
下次造轮子前先看看现有的轮子吧值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载转载 2016-06-30 10:12:38 · 440 阅读 · 0 评论 -
Unicode(UTF-8, UTF-16)令人混淆的概念
Unicode(UTF-8, UTF-16)令人混淆的概念为啥需要Unicode 我们知道计算机其实挺笨的,它只认识0101这样的字符串,当然了我们看这样的01串时肯定会比较头晕的,所以很多时候为了描述简单都用十进制,十六进制,八进制表示.实际上都是等价的,没啥太多不一样.其他啥文字图片之类的其他东东计算机不认识.那为了在计算机上表示这些信息就必须转换成一些数字.你肯定转载 2016-05-07 17:29:24 · 204 阅读 · 0 评论 -
关于在头文件中定义变量
注意头文件中不可以放变量的定义!!!一般情况下头文件中只放变量的声明,因为头文件要被其他文件包含(即#include),如果把定义放到头文件的话,就不能避免多次定义变量,C++不允许多次定义变量,一个程序中对指定变量的定义只有一次,声明可以无数次。不过有三个例外,一下三中实体的定义也可放到头文件中。1.值在编译时就已知的const 变量的定义可以放到头文件中 如:const int n转载 2016-02-02 21:54:18 · 2144 阅读 · 0 评论 -
请不要做个浮躁的人
1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,转载 2016-02-01 09:25:42 · 309 阅读 · 0 评论 -
勤学如春起之苗,不见其增,日有所长!
“工作三年,并不等于拥有三年的工作经验。”这句话告诉我们每天都要思考自己当天所遇到的问题,记录下来,并且思考这个问题的解决办法,每一周或两周总结这些问题和解决办法,归纳思考问题根源,学习解决问题的细节和机制,求精求细,日积月累就是一笔财富,不然工作三年相当于一年的经验,我们追求的是经历一天就要有一天的进步。原创 2016-01-28 22:05:11 · 786 阅读 · 0 评论 -
Undo/Redo框架实现
http://www.cnblogs.com/wanghui9072229/archive/2011/08/29/2158960.html转载 2016-01-28 09:33:15 · 442 阅读 · 0 评论