- 博客(315)
- 资源 (3)
- 收藏
- 关注
转载 关于int,unsigned int , short的关系与跨平台应用及char,int,float等类型在不同平台下所占字节数
c++ 中关于int,unsigned int , short的关系与应用int类型比较特殊,具体的字节数同机器字长和编译器有关。如果要保证移植性,尽量用__int16 __int32 __int64吧__int16、__int32这种数据类型在所有平台下都分配相同的字节。所以在移植上不存在问题。所谓的不可移植是指:在一个平台上编写的代码无法拿到另一个平台上运行时,不能达到期望的运行结
2014-02-20 13:58:51 4606 1
转载 如何写一个无法被继承的类
一个类不能被继承,也就是说它的子类不能构造父类,这样子类就没有办法实例化整个子类从而实现子类无法继承父类。我们可以将一个类的构造函数声明为私有,使得这个类的构造函数对子类不可见,那么这个类也就不能继承了。但是,这引出一个问题,客户程序岂不是也无法实例化这个类了?OK,让我们参考一下Singleton模式,用一个static函数来帮助创建这个类的实例,问题就解决了!class CPa
2014-02-11 22:16:57 956
转载 友元函数和友元类
友元函数和友元类 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检
2014-02-11 21:43:43 617
转载 C和C++中的形参默认值
C__带默认值参数的函数说明1.float area(float r=6.5);指定r的默认值为6.5,如果在调用此函数时,确认r的值为6.5,则可以不必给出实参的值,如area( ); //相当于area(6.5);如果不想使形参取此默认值,则通过实参另行给出。如area(7.5);
2014-02-11 21:23:02 5995
转载 三十分钟掌握STL
三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽
2014-02-11 16:28:28 702
转载 QWT错误static struct QMetaObject const QwtPlot
QWT错误static struct QMetaObject const QwtPlot博客分类: QtQWT错误staticstructQMetaObject 使用QWT例子oscilloscope出现如下错误:error LNK2001: unresolved external symbol "public: static struct QMetaObj
2014-02-10 11:10:51 1973
转载 调试器的工作原理
调试器的工作原理《黑客调试技术揭秘》 理解调试器的工作原理 对调试器的工作原理毫无所知就贸然地使用它是很愚蠢的。所以,在本节中,我将介绍调试器工作的基本原理和理论基础。这可不是一个简明易懂的论述,不过,能让你抓住所要研究问题的主要思想。“Intel Architecture Software Developer’s Manual Volum
2014-01-26 16:39:02 1888
转载 QT的文件操作
今天学习QT的文件操作:1、QIODevice直接继承自QObjectQIODevice类是输入/输出设备的基类。QIODevice为设备提供了公共实现和抽象接口用于读写块数据。QIODevice是一个抽象类,不能被实例化。被Q3Socket,Q3SocketDevice,QAbstractSocket,QBuffer,QFile,QLocalS
2014-01-22 10:19:31 1266
转载 c++中vector的用法
标准库Vector类型使用需要的头文件:#include Vector:Vector 是一个类模板。不是一种数据类型。 Vector是一种数据类型。一、 定义和初始化Vector v1; //默认构造函数v1为空Vector v2(v1);//v2是v1的一个副本Vector v3(n,i);//v3包含n个值为i的元素Vector v4(n); //v4含有n
2014-01-21 10:43:41 799
转载 QT使用流读写XML
导语 从Qt 4.3开始引入了两个新的类来读取和写入XML文档:QXmlStreamReader和QXmlStreamWriter。 QXmlStreamReader类提供了一个快速的解析器通过一个简单的流API来读取格式良好的XML文档,它是作为Qt的SAX解析器的替代品的身份出现的,因为它比SAX解析器更快更方便。QXmlStreamReader可以从Q
2014-01-20 19:40:35 2083
转载 什么是内存泄漏 ,如何避免?
Java最显著的优势之一就是它的内存管理机制。你只需简单创建对象,然后Java垃圾回收机制便会小心的分配和释放内存。然而,事实并非如此简单,因为在Java应用程序中经常发生内存泄漏。本教程说明了什么是内存泄漏,为什么会发生,以及如何防止它们。1.什么是内存泄漏?内存泄漏的定义: 对象不再被应用程序使用,但是垃圾回收器却不能移除它们,因为它们正在被引用。要理解这个定义
2014-01-17 14:16:16 2459
转载 QWidget、QMainWindow、QDialog和QFrame的区别
继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog、QMainWindow、QFrame直接继承QWidget 类。2,说明:QWidget类是所有用户界面对象的基类。窗口部件(QWidget)是用户界面的一个基本单元:它从窗口系统接收鼠标,键盘和其他事件,并且在屏幕上绘制自己。每个窗口部件都是矩形的,并
2014-01-16 16:12:27 1297
转载 strlen,strcat,strcpy,strncpy,strcmp的具体实现
strcpy函数:[cpp] view plaincopychar *strcpy(char *Dest , const char *Src) { assert((Dest != NULL) && (Src != NULL)); char *address = Dest; while((*Dest++ = *S
2014-01-14 15:05:12 1264
转载 Linux网络编程基础和一步一步学
·Linux网络编程 基础(一)·Linux网络编程 基础(二)·Linux网络编程 基础(三)·Linux网络编程 基础(四)·Linux网络编程 基础(五)·Linux网络编程 基础(六)• Linux网络编程一步一步学-简单客户端编写 • Linux网络编程一步一步学-绑定IP和端口• Linux网络编程一步一
2014-01-14 12:24:25 4078
转载 解析VC++ Name Mangling 机制
摘要在C++中,Name Mangling 是为了支持重载而加入的一项技术,目前C++ Name Mangling 并没有统一的标准,也没有较完整的中文文档化资料,所以本篇文章在VS2005环境中,解析C++ Name Mangling 的技术细节,以及怎样将VC Name Mangling后的名称还原为可读的形式。 目录l Name Mangling 简介
2014-01-13 20:22:36 893
转载 c++中RTTI的观念和使用
下面这篇文章虽然有点老,但对C++的RTTI基本原理讲的比较透彻。该文章摘自UMLCHINA网站,是台湾一个群体写的,我根据大家比较熟悉的方式,修改了一些名词的说法,如衍生(派生)等,让大家可以方便的阅读。C++的 RTTI 观念和用途物泽C++应用小组 自从1993年Bjarne Stroustrup 〔注1 〕提出有关C++ 的RTTI功能之建议﹐以及C++的异常处理
2014-01-13 19:40:02 779
转载 \r 和 \n 的区别
结论:在Windows中回车键是当做\r\n的组合来使用的,不是当做\n\r组合来使用'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。以下是在一个论坛里看到的:我自己编了几个程序,得出一个结论“在Windows中回车键是当做\r\n的组合来使用的,不是当做\n\r组合来使用”,网上很多文章我认为都说错了,今给出2个程序我不知
2014-01-12 17:27:13 3692 2
转载 c 与 c++中的time相关函数
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.
2014-01-12 13:56:35 849
转载 QwtPlot解析
QwtPlot类是一个二维绘图部件,继承自QFrame 和 QwtPlotDict。不过严格的说来,它只是一个视图窗口,真正的绘制设备是它的中心部件QwtPlotCanvas类。在QwtPlot的画布上可以显示不限数量的图元项(plot items)。这些图元项可以是曲线(QwtPlotCurve),标签(QwtPlotMarker),网格(QwtPlotGrid),或者其它任意的从QwtPlot
2014-01-09 10:38:43 3708
转载 成为Linux内核高手的四个方法
我曾经问别人如何开始内核编程的学习,他们基本上都说:①如果你不需要了解内核是如何为你工作的,你为何要尝试呢?②你应该订阅Linux内核邮件列表,然后努力去理解。③如果你不去编写针对Linux内核的代码,你就是在浪费时间。这些对我一点儿帮助都没有。所以我在这里列举了一些可行的方法,他们是有关操作系统和Linux内核是怎样在你的项目里工作的,而且还很有趣。虽然我知道得并不多,但至少比我做这些之
2014-01-08 14:12:56 809
转载 类成员的初始化总结
C++为类中提供类成员的初始化列表。类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员2.进入构造函数后在构造函数中执行一般计算 1.类里面的任何成员变量在定义时是不能初始化的。 2.一般的数据成员可以在构造函数中初始化。 3.const数据成员必须在构造函数的初始化列表中初始化。 4.static要在类的定义外面初始化。
2014-01-08 11:12:28 1313
转载 结构体、类的成员变量、成员函数是如何分配内存的?
类的成员函数是如何分配内存的?类的成员函数的代码定义在PE文件的代码区,所以从程序加载时,就已经分配好了内存用于存放这些代码;代码运行时所需要的内存,比如栈、堆等等,则是代码运行时才分配的;对于某个类的所有对象来说,类成员函数只在内存中有一份拷贝,所有的对象都共享同一份成员函数的代码。同一个类的不同的对象之间的差异仅仅是通过成员变量来体现的。关于结构体和C++类的内存地址问
2014-01-08 11:05:02 2392
转载 野指针的问题探讨
什么是野指针?野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,
2014-01-08 09:54:47 895
转载 命令行的故障排除:给linux初学者的建议
从1991年到现在,linux才诞生了20多年,虽然他只比我小一岁,但是他已经走过了很长的路了。并且,他现在比以前更可靠和稳定。但是linux任然是有问题的,相信你能判断并修复任何问题。桌面冻结该怎么办?在使图形环境更稳定的过程中,复合窗口管理器是一个巨大的进步。但是,有时候你们漂亮的linux图形化桌面锁起来了,那么你会怎么办?你所要做的是通过ctrl + alt +
2014-01-07 15:29:54 916
转载 typedef用法总结
第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针
2014-01-07 14:54:24 857
转载 Debug 和 Release版本的区别
Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。 Debug版本包括调试信息,所以要比Release版本大很多(
2014-01-07 10:11:34 1049
转载 const、volatile、mutable的用法总结
const、volatile、mutable的用法const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const
2014-01-06 16:20:46 897
转载 QWT中QwtPlotPicker的介绍及使用
Qwt是用于绘制科学图形的Qt库。Qwt中的Picker是一个拾取器,通俗的说就是用户的鼠标指到哪里就获得哪里的信息(往往是x,y坐标)。QwtPicker类所获得的坐标信息是依赖于窗口的。而在Qwt中,用户所见的科学坐标系是绘制在Plot上的。Plot坐标不与窗口坐标相比,不但原点位置不同,而且方向也不一定相同(见图1)。但是Plot坐标与窗口坐标是有一定相对关系的,为此,Qwt提供了QwtPl
2014-01-06 13:25:36 3211 1
转载 qwt画曲线图实例
来源:http://blog.csdn.net/kupe87826/article/details/8235204参考:http://baike.baidu.com/view/2622589.htm qwt下的realtime工程 环境:vs2010,qt4.7.4,qt-vs-addin-1.1.11-opensource.,qwt6.0.1,
2014-01-06 10:27:34 6456
转载 assert用法总结
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#i
2014-01-05 22:15:51 625
转载 什么是Segmentation fault(Core Dump)?
error:Segmentation fault(Core Dump)这是我用g++时报的错误。什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是操作系统
2014-01-04 12:42:19 2755
转载 bash批量修改文件名称的方法小结(增加,去除,修改后缀)
bash批量修改文件名称的方法总结了下,包括为文件增加后缀、修改文件名后缀、去除文件名后缀、修改文件名前缀。如下:一、加后缀1.问题:同以目录下有海量以日期命名的文件,其中有的有后缀,有的以点结尾,如20020101.,20020102.,……,20020101.td,20020102.td……要求: 把所有以点结尾的加上后缀.ts我的方法:复制代码代码
2014-01-04 11:40:38 5273
转载 vi中文件保存退出命令“:wq”和“:x”的区别
vi是Unix/Linux系统最常用的编辑器之一,我习惯使用":x"命令来保存文件并退出,不愿意使用":wq"命令是因为它得多敲一个字母。 但是,今天我才知道":x"和":wq"的真正区别,如下: :wq 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。 :x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改
2014-01-04 11:21:05 1594
转载 shell编程入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell
2014-01-04 10:35:47 851
转载 SHELL 编程
SHELL 编程 shell 是一个命令解释器,侦听用户指令、启动这些指令、将结果返回给用户(交互式的shell) shell 也是一种简单的程序设计语言、利用它可以编写一些系统脚本。查看本机shell 信息: cat /etc/shells --查看本支持的shell echo $SHELL --查看当前支
2014-01-04 10:25:15 814
转载 “error LNK2019:无法解析的外部符号”的解决方案
在使用vs2008调试程序的过程中,经常会出现无法解析的外部符号问题,可能的原因有很多种,下面这些是我一年来积累的经验.仅供参考. 考虑可能的原因:[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.[1]只写了类声明,但还没有写实现类,造成调用时无法解析[2]声明和定义没有统一,造成链接不一致,无法解析[3]没
2014-01-02 15:36:27 13485
转载 C++语言的15个晦涩特性
这个列表收集了 C++ 语言的一些晦涩(Obscure)特性,是我经年累月研究这门语言的各个方面收集起来的。C++非常庞大,我总是能学到一些新知识。即使你对C++已了如指掌,也希望你能从列表中学到一些东西。下面列举的特性,根据晦涩程度由浅入深进行排序。1. 方括号的真正含义2. 最烦人的解析3.替代运算标记符4. 重定义关键字5. Placement new6.在声明变量的同时进行分支7.
2013-12-30 12:50:23 668
转载 C++实现线程安全的单例模式
废话不多说,常用的代码积淀下来。一、懒汉模式:即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety.使用double-check来保证thread safety.但是如果处理大量数据时,该锁才成为严重的性能瓶颈。1、静态成员实
2013-12-27 11:17:14 774
转载 java中静态属性,静态方法和静态初始化器
static称为静态修饰符,它可以修饰类中的属性和方法。 1.静态属性 被static修饰的属性称为静态属性,这类属性一个最本质的特点是:它们是类的属性,而不属于任何一个类的具体对象。换句话说,对于该类的任何一个具体对象而言,静态属性是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值,同样任何一个类的对象去修改它时,也都是在对同一个内存单元做操作。 静态属性节省
2013-12-27 10:22:47 6964
转载 RHEL 5基础篇—Linux常用命令参考手册
Linux常用命令参考手册 为了大家方便查阅某些命令的用法,作者在此列举了linux系统管理的一些常见命令。包括了命令的详细参数及选项,。关于各命令的更多选项及详细用法,请参考man手册,这里只做简单的介绍。文章中的命令格式约定如下: ““[]”部分表示可选项或参数。关机与重启 1)shutdown命令——至指定时间正常结束所有进程并关闭或重启系统。
2013-12-26 19:10:00 1399
基于AT89C2051单片机的电风扇
2010-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人