摘要: 智能指针是存储指向动态分配对象指针的类,用于控制对象的生存期,能够确保自动正确的销毁动态分配的对象,防止内存泄露。HasPtr 在其他方面的行为与普通指针一样。具体而言,复制对象时,副本和原对象将指向同一基础对象,如果通过一个副本改变基础对象,则通过另一对象访问的值也会改变。 用智能指针的原因:智能指针主要设计目的是避免悬垂指针。 HasPtr 智能指针类需要一个析构函数来删除指针,但是,它的析构函数不能无条件地删除指针。如果两个 HasPtr 对象指向同一基础对象,那么,在两个对象都撤销之前, 我们并不希望删除基础对象。 为了编写析构函数, 需要知道这个HasPtr对象是否为指向给定对象的. 阅读全文
posted @ 2014-03-26 16:01 蓝蓝鱼鱼 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 关于Vector中存放指针的问题,在进行清空的时候比较安全的一种做法是: std::vector ClassNameVec; ...push_back(new ClassName()); std::vector::iterator ClassNameIt = ClassNameVec.begin(); for(;ClassNameIt != ClassNameVec.end();++ClassNameIt) { if(*ClassNameIt != NULL) { delete *ClassNameIt; *ClassNameIt = NULL; } } ClassNameV... 阅读全文
posted @ 2014-03-26 12:38 蓝蓝鱼鱼 阅读(1764) 评论(0) 推荐(0) 编辑
摘要: 在面试中经常会被问到“你对面向对象的理解”所谓面向对象,颠覆了面向过程的“强调解决问题的步骤”的这一观念,面向对象是把一切事物都看做对象,对象用类来抽象,类封装了一些成员变量和成员函数。成员变量是该类实例化后的所有对象都具有的属性,而成员函数是这些对象能够做的操作。面向对象有三大特征:继承、多态、封装; 类的继承性是指从已有的一个类来extends子类,子类具有了父类的所有特征,同时,子类也可以有新的特性。比如:人是一个类,男人具有了人类的所有的特性,比如思考,比如劳动。同时,男人也有新的特性,比如男人会长胡子。类的封装是指类把所有的属性和部分操作都封闭起来,一般为private属性,而仅仅提 阅读全文
posted @ 2014-03-05 16:20 蓝蓝鱼鱼 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一、关系(二维表)现阶段主要的商用数据库系统,如ORACLE,Sybase, DB2等,都是基于关系模型的数据库系统。关系模型应用广泛的原因之一就是它具有简单、明快的数据建模概念:以称为关系的二维表的形式结构数据。使数据库的结构和相关操作也都变得简洁和易于理解。以教学管理系统为例,若定义三个实体集:学生(student)、课程(course)、学习(sc),则在关系数据库系统中可以使用图1-5的三个二维平面表描述。StudentCourseSC图1-5为便于理解,我们讨论在文件系统和关系数据库系统中,分别是如何看待这三张平面表的。在文件系统中,上述三个二维平面表,称为三个文件(file)。由于 阅读全文
posted @ 2014-02-25 14:05 蓝蓝鱼鱼 阅读(1275) 评论(0) 推荐(0) 编辑
摘要: 转载自http://www.cnblogs.com/jasonjiang/archive/2010/06/23/1763869.html第一范式:关系模式中,每个属性不可再分。属性原子性第二范式:非主属性完全依赖于主属性,即消除非主属性对主属性的部分函数依赖关系。第三范式:非主属性对主属性不存在传递函数依赖关系。BNCF范式:在第三范式的基础上,消除主属性之间的部分函数依赖关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。 在你设计数据库之时,若能符合这几个范式,你 阅读全文
posted @ 2014-02-25 13:58 蓝蓝鱼鱼 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 转载自http://blog.csdn.net/zxgis/article/details/7866170使用QWT进行二维曲线绘制,使用方法如下:classPlot:publicQwtPlot{Q_OBJECT……}此时报错:error LNK2001:无法解析的外部符号"public: static struct QMetaObject const QwtPlot::staticMetaObject"出现这样的连接错误一般都是由于QwtPlot类的头文件中没有加Q_OBJECT而导致的,QwtPlot是QWT提供的类,怎么可能没有加Q_OBJECT宏呢?好吧,那就老老实 阅读全文
posted @ 2014-02-24 17:22 蓝蓝鱼鱼 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 转载自http://www.cnblogs.com/stoneJin/archive/2011/09/21/2183313.html在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容chara='A';//globalvariablevoidmsg(){printf("Hello\n");}下面是 阅读全文
posted @ 2014-02-20 17:11 蓝蓝鱼鱼 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/candyliuxj/article/details/7853938?reload(1)编译单元(模块) 在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作:第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件;第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件。 那么,错误可能在两个地方产生:一个,编译时的错误,这个主要是语法错误;一个,链接时的错误,主要是重复定义变量等。 编译单元指在编译阶段生成的每个obj文件。 一个obj文件就是一个编译单元。 一个.cpp(.c)和它相... 阅读全文
posted @ 2014-02-20 15:56 蓝蓝鱼鱼 阅读(1867) 评论(0) 推荐(0) 编辑
摘要: 转载自http://www.cnblogs.com/hicjiajia/archive/2012/05/30/2526829.html哈哈,这个暑假在家里学习Qt,有了一些理论知识后,就想动手搞个什么小东西,在Qt Demo中看到了一个简单的文本编辑器,我就研究它了,当然Qt带的这个例子功能十分简单,经过几天不断的摸索和实践我也搞了一个类似的,不过功能要强大,而且比Windows 默认带的那个记事本也要强,呵呵,后来就想继续扩充功能,时下十分流行的那个功能“一个窗口多个标签页显示”就如IE8那种,可以在一个窗口打开多个网页,在Qt中当然要用QTabWidget,但是据我所知这个控件并没有提供关 阅读全文
posted @ 2014-02-13 09:46 蓝蓝鱼鱼 阅读(5247) 评论(0) 推荐(0) 编辑
摘要: 文章来自:http://blog.csdn.net/iamdbl/article/details/1630043#【最近又搞回QT,嵌入式中经常会用到自定义键盘,要在程序里判断事件,这篇文章很好的诠释了处理过程,强烈推荐!】Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理。假设我们有一个CustomerInfoDialog控件,由一些QLineEdit控件组成。我们希望使用Space键得到下一个QLineEdit的输入焦点。一个最直接的方法是继承QLineEdit重写keyPressEvent()函数,当点击了Space键 阅读全文
posted @ 2014-02-13 09:41 蓝蓝鱼鱼 阅读(271) 评论(0) 推荐(0) 编辑