随笔分类 -  C/C++

摘要:PIC指的是位置无关代码,用于生成位置无关的共享库,所谓位置无关,指的是共享库的代码断是只读的,存放在代码段,多个进程可同时公用这份代码段而不需要拷贝副本。库中的变量(全局变量和静态变量)通过GOT表访问,而库中的函数,通过PLT->GOT->函数位置进行访问。Linux下编译共享库时,必须加上... 阅读全文
posted @ 2015-09-17 14:35 不专业的程序猴子 阅读(7599) 评论(3) 推荐(1)
摘要:以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上 AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白这样做的含义,也一直没有这样做,而且代码也工作 得好好的,所以感觉这好像一句废话。最近的项目中,需要在D... 阅读全文
posted @ 2014-11-03 16:35 不专业的程序猴子 阅读(1955) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/avibird/article/details/8140445http://msdn.microsoft.com/zh-cn/library/z66yd3h6.aspx 阅读全文
posted @ 2014-11-03 10:57 不专业的程序猴子 阅读(183) 评论(0) 推荐(0)
摘要:VS安装QT后运行环境所需配置 安装好QT和QT在VS下的插件之后: 1.打开VS,找到QT5→QT Option,如下: 2.配置电脑环境变量,在系统变量→Path下增加QT的动态库所在文件夹,也就是bin文件夹路径: QT使用QCustomplot库 官网下载:http://www.qcusto... 阅读全文
posted @ 2014-09-02 15:49 不专业的程序猴子 阅读(7063) 评论(3) 推荐(0)
摘要:1.QT多线程涉及到主线程和子线程之间交互大量数据的时候,使用QThread并不方便,因为run()函数本身不能接受任何参数,因此只能通过信号和槽的交互来获取数据,如果只是单方面简单交互数据还过得去,如果涉及多次主、子线程之间的交互的时候,这种方式是很不方便的,这里采取另外一种方式,建一个继承自QO... 阅读全文
posted @ 2014-08-13 11:35 不专业的程序猴子 阅读(1375) 评论(2) 推荐(0)
摘要:仅供互相学习,请勿喷,有观点欢迎指出~class A{ virtual void aa(){};};class B : public virtual A{ char j[3]; //加入一个变量是为了看清楚class... 阅读全文
posted @ 2014-07-07 21:11 不专业的程序猴子 阅读(1626) 评论(0) 推荐(0)
摘要:参考文章:http://blog.chinaunix.net/uid-25132162-id-1564955.htmlhttp://blog.csdn.net/haoel/article/details/1948051/一、虚函数与继承 1、空类,空类单继承,空类多继承的sizeof#include... 阅读全文
posted @ 2014-07-07 16:35 不专业的程序猴子 阅读(7280) 评论(0) 推荐(3)
摘要:私有成员变量的概念,在脑海中的现象是,以private关键字声明,是类的实现部分,不对外公开,不能在对象外部访问对象的私有成员变量. 然而,在实现拷贝构造函数和赋值符函数时,在函数里利用对象直接访问了私有成员变量,因而,产生了困惑.下面以具体实例进行说明: 疑惑:为什么第26行和第32行代码... 阅读全文
posted @ 2014-07-06 20:49 不专业的程序猴子 阅读(4063) 评论(0) 推荐(1)
摘要:Effective C++ 条款33:明智地使用内联 1、inline就像register,只是对编译器的建议,编译器并不一定接受该建议。 2、"一般来说,实际编程时最初的原则是不要内联任何函数,除非函数确实很小很简单"。 3、构造和析构函数看起来短小,看起来很适合内联,其实不然! 因为编译器在构... 阅读全文
posted @ 2014-07-06 14:10 不专业的程序猴子 阅读(445) 评论(0) 推荐(0)
摘要:转载自:http://blog.csdn.net/zy1691/article/details/3606128 最近有个朋友研究了一下虚函数内联的问题,我也对这个问题产生了兴趣,发现网上也有好多讨论这个问题的,众说纷纭,于是花了点时间研究了一下。自己在vc下做了一些实验,通过观察各种情况下汇编代码... 阅读全文
posted @ 2014-07-06 12:47 不专业的程序猴子 阅读(242) 评论(0) 推荐(0)
摘要:对于构造函数不能为虚函数的原因,查了挺多资料,总结出以下三个比较易理解并且比较靠谱的原因:原因一虚函数的意思就是开启动态绑定,程序会根据对象的动态类型(基类还是子类)来选择要调用的方法。然而在构造函数运行的时候,这个对象的动态类型还不完整,压根就没有办法确定它到底是什么类型,故构造函数不能动态绑... 阅读全文
posted @ 2014-07-06 00:58 不专业的程序猴子 阅读(488) 评论(0) 推荐(0)
摘要:非原创,原文链接:http://blog.csdn.net/shuchao/article/details/3705252 调用reverse_iterator的base成员函数可以产生"对应的"iterator,但这句话有些辞不达意。举个例子,看一下这段代码,我们首先把从数字1-5放进一个ve... 阅读全文
posted @ 2014-06-25 16:12 不专业的程序猴子 阅读(1404) 评论(0) 推荐(1)
摘要:关于C++中空类的大小为1,我们大家都有所了解,但是除了空类之外的其他一些没有成员变量的类的大小,还是有很多不明之处的。 我们来看如下一个例子:#includeusing namespace std; class a {}; class b{}; class c :public a{ vir... 阅读全文
posted @ 2014-06-19 16:16 不专业的程序猴子 阅读(1544) 评论(0) 推荐(0)
摘要:今天看程序员面试宝典的时候遇到一个问题,书上有这么一句话:sizeof计算栈中分配的大小。咋一看这句话的时候,很不理解,难道像函数中类似于static、extern const类型的变量的sizeof都是0? 本着实践出真知的原则,我测试了一下:static int s = 10; exter... 阅读全文
posted @ 2014-06-19 15:34 不专业的程序猴子 阅读(1779) 评论(0) 推荐(0)
摘要:非原创(文中红字为自己见解,如有不对,请大神指点) 程序由指令和数据组成,C语言程序亦是如此。开发者在编写程序的时候往往需要根据不同数据的特点以及程序需求来选择不同的数据存储方式,那么在C语言中数据的存储分为哪些方式呢?C程序大致来讲可以分为四个数据区:常量区,静态去,堆区,栈区。 其中常量区存... 阅读全文
posted @ 2014-06-18 23:00 不专业的程序猴子 阅读(2588) 评论(1) 推荐(2)
摘要:在查找const相关资料的过程中,又遇到了另外一个问题,就是C++类中const static(或者static const)成员变量应当如何初始化的问题。 查阅了许多资料,发现VC环境下,只允许const static成员变量在类外初始化,这个应该是编译器遗留下的bug(你也可以说是要求严... 阅读全文
posted @ 2014-06-18 19:47 不专业的程序猴子 阅读(6249) 评论(2) 推荐(2)
摘要:最近在看程序员面试宝典,看到const这块感觉有很大疑惑,查了很多资料,可以总结如下:1.在C语言中 在C语言中,const修饰的变量不具有常量的特性,只是一个不可修改的变量,实质上仍然是变量,在编译期间无法知道它的值,不可以用作数组下标。2.在C++中 在C++中,const就有很大不一样,... 阅读全文
posted @ 2014-06-18 17:22 不专业的程序猴子 阅读(1186) 评论(2) 推荐(1)