读书笔记
文章平均质量分 52
站在这里看远方
愿广交天下好友
展开
-
模板编译模型
《C++Primer》关于模板编译模型有如下说法: 当编译器看到模板定义的时候,它不立即产生代码。只有在看到用到模板时,如调用了函数模板或调用了类模板的对象的时候,编译器才产生特定类型的模板实例。 一般而言,当调用函数的时候,编译器只需要看到函数的声明。类似地,定义类类型的对象时,类定义必须可用,但成员函数的定义不是必须存在的。因此,应该将类定义和函数声明放在头文件中,而普通函原创 2012-03-23 11:29:22 · 707 阅读 · 0 评论 -
MFC:拖动无标题窗口的两种方法
有的时候,我们需要自绘窗口的标题,或者隐藏了窗口标题,那么问题来了,这就是怎么拖动无标题的窗口?这个问题的本质便是怎么在窗口的客户区上,拖动鼠标,并且移动窗口。通常状态下,一个窗口只有在标题栏的区域,才会响应鼠标拖动的消息。而在窗口的客户区并不会响应。这样便有了一个方法,就是我们可以欺骗windows,让它误认为鼠标点击窗口客户区时是点击在了标题栏上。有这么个消息,就是WM_NCH转载 2012-05-14 17:03:26 · 4112 阅读 · 0 评论 -
2012年第三季度学习计划
//作者:Andy Huang//时间:2012.7.6~2012.10.7//内容:Win32 API编程,UI界面(GDI+,GDI)//期望目标:MP3软件界面//计划以前也写过很多,但是都没有坚持到最后。从2011年7月1日毕业工作至今,刚好整整一年。在这一年的时间里面学会了很多东西,发现了自己很多的不足,感觉自己需要调整好心态脚踏实地的学习。因此,今天将2012年第三季度原创 2012-07-07 00:20:42 · 542 阅读 · 0 评论 -
类静态成员
类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时转载 2012-07-16 16:51:37 · 466 阅读 · 0 评论 -
覆盖,重载,隐藏
覆盖(重写),重载,隐藏这三者的概念很容易混淆,弄清楚这三者的区别与联系是有必要的.覆盖(重写)->Override,重载->Overload,多态->Polymorphis重载->Overload函数名字相同参数不相同(参数个数或参数类型不同)相同作用域virtual关键是可有可无覆盖(重写)->Override函数名字原创 2012-07-24 11:03:04 · 675 阅读 · 0 评论 -
计算机大小端
大端模式 所谓的大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 例子: 0000430: e684 6c4e 0100 1800 53ef 0100 0100 0000 0000440: b484 6c4e 004e ed00 00原创 2012-10-23 13:08:28 · 2546 阅读 · 0 评论 -
用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现
本文转自:http://www.cnblogs.com/CodeWorkerLiMing/archive/2012/06/14/2548863.html开发板也差不多买了半年了, 以前照着教程用的是软件是ADS,在win7下老是崩溃, 后来才知道ADS早就不提供支持了, ADS的公司怎样怎样了...(此处省略300..)然后我就捣鼓着怎么转到KEIL上来, 具体的例程代码我不会移植, 不过转载 2012-12-05 23:03:50 · 1786 阅读 · 0 评论 -
如何定义与实现一个类的成员函数的回调函数 .
如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。通过查询资料发现,其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递一个指向自身的指针给其成员函数从而实现程序函数可以访问C++的数据成员。这也可以理解为什么C++类的多个实例可以共享成员函数但是确有不同的数据成员。由于this指针的作用,使得将一个CALLBACK型的成员函数作转载 2013-01-04 16:24:51 · 1793 阅读 · 0 评论 -
在Ubuntu系统上利用Tomcat+Jenkins搭建Android源码编译环境
前言相关知识Ubuntu开机启动Shell脚本TomcatJenkinsJenkins简单配置构建配置步骤下载tomcat相关问题参考前言相关知识Ubuntu开机启动Shell脚本TomcatJenkinsJenkins简单配置构建配置步骤下载tomcat相关问题参考原创 2017-08-22 20:12:57 · 1032 阅读 · 0 评论 -
PreSubclassWindow
PreSubclassWindowPreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。其实,用户要在对话框中使用定制控件,必须用DDX转载 2012-05-13 14:36:01 · 617 阅读 · 0 评论 -
使用MFC的CFileDialog实现选择多个文件
CFileDialog openDlg( TRUE, /*bOpenFileDialog为TRUE时为打开文件,为FALSE时为保存文件*/ NULL, NULL, OFN_ALLOWMULTISELECT, /*dwFlags为OFN_ALLOWMULTISELECT表示可以选择多个文件*/);//构建CFielDialog对象时指定了原创 2012-03-23 11:32:47 · 9202 阅读 · 2 评论 -
浅谈getchar()函数
一、函数介绍1.函数实现:getchar 由宏实现:#define getchar() getc(stdin)2.函数返回值:getchar有一个int型的返回值, 返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.3.函数功能:当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回原创 2011-09-21 14:00:59 · 565 阅读 · 0 评论 -
指针和引用的区别
指针和引用是程序员在设计程序时必不可少的两大“助手”,然而很多时候是不为其利反被其害。今天在这里简单的归纳一下指针与引用的区别 1、非空性的区别:引用在声明时必须赋初始值,而且引用在任何时候都不能为空。若声明一个变量使其指向一个对象,但是变量有时候不指向任何对象,此时应该将变量声明为指针;若声明一个变量,而且能确保此变量始终指向一个对象,则可以将变量声明为引用; 2、可原创 2010-10-26 11:03:00 · 407 阅读 · 0 评论 -
浅谈sizeof与stelen的区别
sizeof与strlen的概念是很多人到现在都还很模糊的两个概念,今天在一本书上看到了这个知识点,而且总结的很好,现在将其记录下来1、sizeof是一个操作符,而strlen是一个函数;2、sizeof的参数可以是类型名也可以是变量名,而strlen的参数只能是char*,而且还必须是以“/0”作为结束符的char*;3、数组作为参数传给sizeof时依然是数组,而传给str原创 2010-10-24 10:41:00 · 1081 阅读 · 0 评论 -
内存分配方式
内存的三种分配方式:1. 从静态存储区分配:此时的内存在程序编译的时候已经分配好,并且在程序的整个运行期间都存在。全局变量,static变量等在此存储。2. 在栈区分配:相关代码执行时创建,执行结束时被自动释放。局部变量在此存储。栈内存分配运算内置于处理器的指令集中,效率高,但容量有限。3. 在堆区分配:动态分配内存。用new/malloc时开辟,delete/free时释放。生存期由原创 2010-10-23 15:49:00 · 450 阅读 · 0 评论 -
浅谈const限定符
今天在看《程序员面试宝典》一书时,看到里面有关const与#define的比较一节,突然就想起来课堂上老师曾给我们讲过const限定符。现在将const的一些特性归纳一下:1、在C语言中const可以定义常量、修饰函数参数、修饰函数返回值;2、在C++中除了有C语言中的特性意外还能修饰函数的定义体,定义类中的某个成员函数为恒态函数;3、C默认const为外部链接,而C++中默认cons原创 2010-10-22 16:29:00 · 441 阅读 · 0 评论 -
螺旋队列算法分析
螺旋队列算法分析螺旋队列的样子如下图: 两大规律:1。螺旋规律(红线)2。奇数平方规律(紫线) 问题描述: 设1的坐标是(0,0),的方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(0,1)。编程实现输入任意一点坐标(x,y),输出所对应的数字! 问题解决:从紫线突破。从图中不难发现,右上角vc=(2转载 2010-10-21 15:30:00 · 394 阅读 · 0 评论 -
UpdateData()函数的用法
UpdateData()函数的参数是bool类型的参数,当参数为1时,由该函数以下的代码都将控件的值传入到控件对应的变量中;反之,当参数为0时,由该函数以下的代码都将变量的值传入控件界面中。原创 2010-03-13 19:15:00 · 633 阅读 · 0 评论 -
Windows环境打开文件的方式总结
在Windows环境下打开文件的方式有很多种.下面一一列举1.C语言:函数FILE fopen(const char* path, const char* mode);2.C++语言:fstream类:fstream file;file.open(const char* filename, ios_base::openmode);3.Windows系统API:int _op原创 2012-04-09 10:08:13 · 540 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2017-08-22 19:41:34 · 333 阅读 · 0 评论