- 博客(244)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
转载 如何读书
怎样做读书笔记的?第一步,看作者简介,摘要和目录,快速了解一本书的框架,越了解作者的经历背景往往越有助于你深入思考这本书的一些观点。第二步,快速诵读一遍,我的习惯一般是速读。第三步,看到启发性或者精彩的单元,我马上停下来做记录。写旁批,做摘录,写个微博表达感悟,画个逻辑框图等。第四步,对于有感觉的书,记录了足够的素材,我才会考虑做读书笔记。以上是对秋叶老师这本书的总结,不会读书...
2018-08-30 21:59:43
1626
原创 147看书计划
header 1 header 2 header 3 header 4 header 5 header 6 row 1 col 1 row 1 col 2 row 1 col 1 row 1 col 2 row 1 col 1 row 1 col 2 书库 序号 开始 结束 所看 心得 ...
2018-08-30 21:43:22
604
原创 2016.8.12面试点
1.多态实现的理解2.空类里除了构造函数和析构函数,还有什么?3.多线程的理解4.队列,链表,二叉树等数据结构,查询效率最高的是哪个5.COM组组件生命周期6.bool运算
2016-08-12 12:11:05
434
原创 win7 64位下安装ubtuntu双系统,默认windows7系统
1.右键点击我的电脑》管理》磁盘管理,选择一个空间较大的盘,右键选择压缩卷,笔者为Ubuntu划分了80G的空间(空间大小根据自己的需要自行选择,建议如果只是安装作为练习使用有30G就可以,要是自己有运行的程序或者要处理数据还是建议多分一点空间),设置好容量大小(82236M,(X-1)*4+1024*X最后能显示整80G)后点压缩即可,不用给他设置盘符,我们在安装Ubuntu的时候在重新分区。注
2016-06-01 16:01:57
2061
转载 Qt的内省机制剖析(转)
所谓内省是指面向对象语言的一种在运行期间查询对象信息的能力, 比如如果该语具有运行期间检查对象型别的能力,那么我们称它是型别内省(type intropection)的,型别内省可以用来实施多态。c++的内省比较有限,它仅支持上面所说的型别内省, C++的型别内省是通过运行时类型识别(RTTI)(Run-Time Type Information)中的typeid 以及 dynamic_c
2015-09-17 08:40:27
460
转载 this 指针
this指针是指向当前调用此成员函数的对象的。实际上每个成员函数都有一个秘密参数,这个参数就是this了,它是一个*const指针,即指针所指向的对象可以改变,但是指针本身不可改变,该参数编译时由编译器添加。如:class A {public:void do() {} //实际上应该是这样的 void A::go(A *const this);};int main(
2015-09-16 21:04:15
376
原创 explicit
将关键字explicit放于类定义中单实参构造函数的前面,以防止编译器使用自动转换。如果这个实参不能与类所构造的参数相似,或者二者之间存在父—子关系,则使用explicit关键字是有用的。QtCreator生成的类会将这个关键字放于所产生的定制窗口构造函数的前面,建议程序员对QWidget派生的类也这样做
2015-05-27 10:49:49
477
原创 C++强制类型转换
为了完成强制类型转换,C++中已经为我们提供了4中标准方法,它们是dynamic_cats, static_cast, const_cast, reinterpret_cast,用法形式为:dynamic_cast(表达式),之所以分成4类,就表示他们各自有着不同的使用环境dynamic_cast最好些,它检查的更严格些,其次是static_cast,而后两者也就是const_cast
2015-05-08 11:24:05
379
转载 Delphi之virtual,dynamic,abstract
对象的方法能定义成静态(static)、虚拟(virtual)、动态(dynamic)或消息处理(message)。请看下面 的例子:TFoo = class procedure IAmAStatic; procedure IAmAVirtual; virtual; procedure IAmADynamic; dynamic; procedure IAmAMessag
2015-05-04 16:21:11
408
转载 delphi function 与 procedure
Delphi把操作数据的方法分成了两种,一种是function,另一种是procedure,分别称为“函数”和“过程”,这二者最大的差别就是函数拥有返回值而过程没有,比如按钮的事件响应过程,这就是一个过程,因此它没有返回值;而一个简单的函数如求字符串长度的函数Length,它的函数原形为function Length(S:string):Integer;
2015-05-04 14:26:29
693
原创 delphi程序结构
dpr 为工程文件dfm 为窗体文件pas 为单元文件cfg 配置文件dof 为项目选项文件(一般没用)dcu compiled units文件 ,编译后的单元文件res 资源文件ddp 文件就是Delphi Diagram Portfolio简写,是用来保存Code Editor中的Diagram信息的. 一般一个项目要考个别人,只需要 dpr,dfm,pas文
2015-04-30 17:45:06
1286
转载 delphi a=class(b);a:class(b)
a= class(b)是类型声明,必须在type段中声明,表示a的类型信息继承自b,并且希望实现新的类方法等处理。如: type TFoo = class(TForm); //TFoo的类型声明继承自TForm end;a: b 表示a是b的类实例引用变量,一般在var或类结构的private/public中声明。如: type TFoo = class(TForm)
2015-04-30 15:41:40
731
转载 Delphi单元文件Unit详解
DELPHI文件结构unit Unit1; interface {接口部分开始} uses {引用单元列表,这是可选的,如果包含必须紧跟interface关键字} {接口部分声明常量/类型/变量/过程和函数,这些声明对引用单元就像自己的声明一样} {在接口部分声明的过程和函数,就像使用了forward关键字}
2015-04-30 15:31:52
2177
原创 qt正则表达式学习
正则表达式30分钟入门教程http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
2015-04-16 10:03:49
427
转载 Qt中常用的类
QChar 表示一个字符的类,包含于QtCore判断:bool isDigit() const;//判断是否是十进制数字('0'-'9')bool isLetter() const;//判断是否是字母bool isNumber() const;//判断是否是数字,包括正负号,小数点等bool isLetterOrNumber() const;//判断力
2015-04-15 16:20:36
953
转载 dynamic_cast<>的使用方法
作为四个内部类型转换操作符之一的dynamic_cast和传统的C风格的强制类型转换有着巨大的差别。除了dynamic_cast以外的转换,其行为的都是在编译期就得以确定的,转换是否成功,并不依赖被转换的对象。而dynamic_cast则不然。在这里,不再讨论其他三种转换和C风格的转换。首先,dynamic_cast依赖于RTTI信息,其次,在转换时,dynamic_cast会检查转换的sou
2015-04-15 10:59:38
593
转载 QApplication类
只要包含头文件QApplication或者QCoreapplication,就用使用qApp,指向一个当前实例。查看源码发现qApp是个宏QApplication中:#define qApp (static_cast(QCoreApplication::instance()))QCoreapplication中:#define qApp QCoreApplication::
2015-04-14 19:18:05
1139
原创 QList介绍
QList是一种表示链表的模板类。QList是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。QList、QLinkedList和QVector提供的操作极其相似:* 对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList的API是基于迭
2015-04-14 18:58:55
1279
原创 抽象数据类型线性表的定义—静态单链表
/*线性表的静态单链表存储结构(借用一维数组来描述线性链表)*/#define MAXSIZE 1000typedef struct{ ElemType data; int cur;}component,SLinkList[MAXSIZE];/*静态单链表中查找返回第一个值为e的元素位序*/intLocateElem_SL(SLinkList S, ElemType e){
2015-03-23 10:11:28
1082
原创 数据结构之树的相关名字解释
树树:有n个结点的有限集树结点的度:结点拥有的子树的数目叶子/终端节点:度为0的结点非终端结点/分支结点:度不为0的结点树的度:树内各结点度的最大值树结点层次:从根开始定义,根为第一层,根的孩子为第二层树的深度/高度:树中结点的最大层次有序树:树中结点的各子树看成从左至右是有次序的,即不能交换无序树:树中结点的格子数看成从左至右是无次序的,即可以交换森林:是
2015-03-19 16:16:01
656
原创 华科软件工程机试题4
12、求数列s(n)=s(n-1)+s(n-2)的第n项的值。其中s(1)=s(2)=1。要求任意给定n,输出s(n)。(7分) #include int function_s(int n); void main() { int number; printf("Please enter the number:\n"); scanf("%d",&number);
2015-03-19 11:53:55
873
原创 华科软件工程机试题3
9、假设以下关于堆栈的库函数已经给出,unsigned char is empty();检查堆栈是否为空,如果是,返回1;否则返回0. void push (char element);把一个char型的数据element 推入栈顶。 Char pop (); 弹出栈顶的char型数据。 (1) 利用这些库函数设计一个C语言的函数unsigned char isBalanced (char
2015-03-19 11:53:20
841
原创 华科软件工程机试题2
5、在一个整形数组a中既有负数又有正数,编写一个算法将a中所有负数移到整数之前,要求其时间复杂度为O(n),n为数组长度,并且只使用常数个辅助空间。 例如:a[]={1,2,3,4-1,1,-2,-1,-4}执行算法后的输出为a[]={-4,-1,-2,-1,1,4,3,2,1} 6、编写一个C函数,输入一个二叉树的根节点,返回这棵树中所有值大于0的节点值之和,如果根伟空,返回0
2015-03-19 11:52:19
893
转载 华科软件工程机试题
1、将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。举例:若输入abc4Efg,则应输出aBc4EFg (c++) #include #include using namespace std; int main() { char ss[10]={'0'}; int i; for(i=0;i
2015-03-19 11:47:59
990
原创 数据结构之图的相关名字解释
图图:一种数据结构,是顶点和边的集合 G=(V,{E})定点:图中的数据元素完全图:有n(n-1)/2条边的无向图,称之为完全图。即任意两个顶点间,都有边有向完全图:有n(n-1)条弧的有向图,称之为有向完全图,即任意两个顶点间,都有弧稀疏图:有很少条边或弧(少于nlogn)的图稠密图:有很多条边或弧的图子图:有两个图G(V,{E}),G‘(V',{E'}),如果V'
2015-03-19 10:04:26
453
原创 抽象数据类型线性表的定义—链表操作
/*单链表存储结构*/typedef struct LNode{ ElemType data; struct LNode *next;}LNode, *LinkList/*将第i个元素赋给e p指向第一个结点,j为计数器*/Status GetElem_L(LinkList L, int i, ElemType &e){ p = L->next; j = 1; whil
2015-03-18 16:53:30
1766
2
原创 抽象数据类型线性表的定义—评论为顺序表
ADT List{ InitList (&L);//构造一个空线性表L DestroyList(&L);//销毁已存在的空线性表L ClearList(&L);//将L重置为空表 ListEmpty(L);//判断若存在的表L为空表,返回TRUE,否则返回FALSE Listlength(L);//返回已存在线性表L中的数据元素个数 GetElem(L,i,&e);//用e返回L中第
2015-03-17 14:59:59
1828
9
原创 抽象数据类型Triplet的表示和实现
typedef ElemType *TripletStatus InitTriplet(Triplet &T, ElemType v1, ElemType v3){ T = (Elemtype*)malloc(3*sizeof(Elemtype)); if(!T) exit(OVERFLOW); T[0] = v1; T[1] = v2; T[2] = v3; return OK;
2015-03-17 11:31:11
1516
1
原创 数据结构之前期定义3
(1)预定义常量和类型#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;//Status是函数的类型,其值是函数结果状态代码(2)数据结构的表示(存储结构
2015-03-17 10:51:02
464
1
原创 虚函数表
C++中虚函数通过一张虚函数表来实现,在这个表中,主要是一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其内容真实反映实际的函数,这样,在有虚函数的类的实例中,这张表被分配在了这个实例的内存中,所以当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得很重要,它就像地图,指明了实际所所应该调用的函数。编译器必须保证虚函数表的指针存在于对象实例中最前面的位置,意味着我们通过对象实例
2015-03-16 11:15:39
420
2
原创 COM技术
COM定义了客户与构建之间的互操作的标准,包括规约与实现两部分规约部分定义了构件之间的通信机制,这些规约不依赖于任何特定的语言和操作系统实现部分就是COM库,为COM规约的具体实现提供了一些核心服务COM是一种以组建为发布单元的对象模型,这种模型使得各个软件组件可以用一种统一的方式进行交互。COM是一种协议,它建立了一个软件模块同另一个软件模块之间的连接,提供了组件之间进行
2015-03-16 09:57:41
666
1
原创 内存泄露
char *c = new char[1000];1.一般的变量分配如你的int i =1000;这个i是在程序栈中分配的,程序运行结束后,程序会自动释放掉程序栈中的数据。2.而new是动态的分配内存,这个内存在堆中分配的,堆中分配的内存 ,程序不会自动清除这个内存,只有靠程序员自己手动释放,也就是要用delete操作3.new分配的是指向内存单元的指针的值,所以应该用char *c4.释
2015-03-13 10:42:06
380
1
原创 STL
STL提供了一组表示容器、迭代器、函数对象和算法的模板。容器是一个与数组类似的单元,可以存储若干个值。STL是同质的,即存储的值的类型相同;算法是完成特定任务,(如对数组进行排序或在链表中查找特定值)的处方;迭代器能够用来遍历容器的对象,与能够遍历数组的指针类似,是广义指针;函数对象是类似于函数的对象,可以是类对象或函数指针(包括函数名,因为函数名被用于指针)。STL使得能
2015-03-11 14:07:54
329
原创 数据结构之前期定义2
ADT Triplet{数据对象:D={e1,e2,e3|e1,e2,e3∈Elemset(定义了关系运算的某个集合)}数据关系:R1={,}基本操作:InitTriplet(&T, v1,v2,v3)//操作结果:构造三元组T,元素e1,e2和e3分别被赋以参数v1,v2和v3的值DestroyTriplet(&T)//操作结果:三元组T被销毁Get(T,i,
2015-03-11 09:55:28
548
原创 数据结构之前期定义1
ADT 抽象数据类型定义抽象数据类型ADT 抽象数据类型名{数据对象:数据关系:基本操作:}ADT 抽象数据类型名数据对象和数据关系的定义用伪码表示,基本操作的定义格式为 基本操作名(参数名)初始条件:操作结果:基本操作有两种参数:赋值参数值为操作提供输入值;引用参数以&打头,除可提供输入值外,还将返回操作结果。
2015-03-11 09:35:44
413
转载 走近 STL
学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者。什么是泛型程序设计 我们可以简单的理解为:使用模板的程序设计就是泛型程序设计。就像我们我们可以简单的理解面向对象程序设计就是使用虚函数的程序设计一样。 STL是什么 作为一个C++程序设计者,STL是一种不可忽视的技术。Sandard Template Library (STL)
2015-03-09 10:56:12
375
原创 this指针
一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。使用:一种情况就是,在类的非静态成
2015-03-09 10:16:16
478
3
原创 拷贝构造函数
C++允许同类型变量之间的赋值,int a = 100; int b = a;对象是一种复杂的类类型,很多时候我们需要用一个对象去创建另一个对象,或者将一个对象赋值给另一个对象,这时需要用拷贝构造函数(当用已存在的对象为了一个新的对象赋值时,既要给新对象的数据成员分配空间资源,也要给新对象的数据成员赋予相应的值,即既要创建新对象,又要用原对象的值初始化。)定义方法:该构造函数的参数
2015-03-09 10:12:11
414
3
怎么获取所有的windows窗口句柄
2016-12-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人