摘要: 构造函数是特殊的成员函数,只要创建类类型的新对象,都要执行构造函数,定义对象指针不会调用构造函数。创建类类型的新对象时,编译器为对象分配内存空间,完成后自动调用构造函数初始化对象的数据成员。构造函数的主要工作是初始化对象的数据成员。0、构造函数的特点(1)、构造函数与类同名(2)、构造函数没有返回类... 阅读全文
posted @ 2014-05-13 14:53 LubinLew 阅读(1116) 评论(0) 推荐(0) 编辑
摘要: 1、成员变量成员变量可以是任何类型,如基本数据类型、引用、另一个类的对象或指针、自身类的引用或指针,但不能是自身类的对象;成员变量不能指定为auto、register、extern 存储类型。1.1、普通成员变量普通成员变量是属于对象的,其生命周期就是对象的生命周期,只能通过构造函数的初始化列表进行... 阅读全文
posted @ 2014-05-11 13:40 LubinLew 阅读(5351) 评论(2) 推荐(1) 编辑
摘要: 重载二元运算符http://www.cnblogs.com/LubinLew/p/CppOperatorOverload-BinaryOperator.html重载一元运算符http://www.cnblogs.com/LubinLew/p/CppOperatorOverload-UnaryOper... 阅读全文
posted @ 2014-05-10 17:52 LubinLew 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 为了与IO标准库一致,重载输入输出运算符函数的第一个行参应该是流的引用,第二个行参是对象的引用。如果重载为类的成员函数,第一个行参应该是对象的引用,第二个行参是流的引用。使用方式是 ClassObj > /*想要输入的内容1*/ >> /*想要输入的内容2*/ >>...; //检查错误 和 ... 阅读全文
posted @ 2014-05-10 17:51 LubinLew 阅读(13100) 评论(0) 推荐(1) 编辑
摘要: 类型转换函数能够实现把一个类 类型 转换成 基本数据类型(int、float、double、char等) 或者 另一个类 类型。其定义形式如下,注意不能有返回值,不能有参数,只能返回要转换的数据类型。class X{public: operator TYPE() { //... 阅读全文
posted @ 2014-05-10 12:25 LubinLew 阅读(4766) 评论(0) 推荐(0) 编辑
摘要: 1、重载赋值运算符=赋值运算符用于同类对象间的相互赋值。赋值运算符只能被重载为类的非静态成员函数,不能重载为友元函数和普通函数。对于用户自定义的类而言,如果没有重载赋值运算符,那么C++编译器会为该类提供一个默认的重载赋值运算符成员函数。默认赋值运算符的工作方式是按位对拷,将等到右边对象的非静态成员... 阅读全文
posted @ 2014-05-10 11:39 LubinLew 阅读(8809) 评论(0) 推荐(0) 编辑
摘要: 0、重载一元操作符的方法一元运算符即只需要一个操作用的运算符,如取地址运算符(&)、复数(-)、自减(--)、自加(++)等。运算符重载可以分为3种方式:类的非静态成员函数、类的友元函数、普通函数。例如有 1 个操作数 a,一元运算符?(表示一个一元运算符),a? 或者?a 的操作会被解释为下面2种... 阅读全文
posted @ 2014-05-09 13:52 LubinLew 阅读(4390) 评论(0) 推荐(2) 编辑
摘要: 1、重载二元操作符的方法二元运算符又称为双目运算符,即需要2个操作数的运算符,例如 + - * / 等。运算符重载可以分为3种方式:类的非静态成员函数、类的友元函数、普通函数。例如有 2 个操作数 a 和 b,二元运算符 ? (表示一个二元运算符),a ? b 的操作会被解释为下面2种形式之一//a... 阅读全文
posted @ 2014-05-08 20:24 LubinLew 阅读(6020) 评论(0) 推荐(1) 编辑
摘要: 0、序言名字空间是C++提供的一种解决符号名字冲突的方法。一个命令空间是一个作用域,在不同名字空间中命名相同的符号代表不同的实体。通常,利用定义名字空间的办法,可以使模块划分更加方便,减少模块间的相互影响。1、名字空间的成员定义在名字空间中的实体称为名字空间的成员。名字空间内的名字可以被该名字空间内... 阅读全文
posted @ 2014-05-08 13:25 LubinLew 阅读(6813) 评论(0) 推荐(2) 编辑
摘要: 0、序言其实2者主要的区别就是iostream是C++标准的输入输出流头文件,而iostream.h是非标准的头文件。标准头文件iostream中的函数属于标准命令空间,而iostream.h中的函数都是全局函数。#include //这个就是C++98标准化以后的标准头文件#includ... 阅读全文
posted @ 2014-05-06 10:47 LubinLew 阅读(7963) 评论(0) 推荐(3) 编辑
摘要: 问题在CentOS安装Chrome会遇到libstdc++.so.6(GLIBCXX_3.4.15)(64bit) 依赖失败的问题,即使下载了最新的libstdc++.so.6(包含GLIBCXX_3.4.15)也解决不了问题.Resolving Dependencies--> Running tr... 阅读全文
posted @ 2014-04-29 18:21 LubinLew 阅读(2691) 评论(1) 推荐(1) 编辑
摘要: 3GPP(The 3rd Generation Partnership Project)3GPP的目标是实现由2G网络到3G网络的平滑过渡,保证未来技术的后向兼容性,支持轻松建网及系统间的漫游和兼容性。3GPP主要是制订以GSM核心网为基础,UTRA(FDD为WCDMA技术,TDD为TD-CDMA技... 阅读全文
posted @ 2014-04-23 09:26 LubinLew 阅读(5865) 评论(0) 推荐(1) 编辑
摘要: NAMEmq_notify- 通知进程可以接收一条消息 (REALTIME)SYNOPSIS#include int mq_notify(mqd_t mqdes, const struct sigevent *notification);Data Structurestruct sigevent 的... 阅读全文
posted @ 2014-04-19 19:40 LubinLew 阅读(1852) 评论(0) 推荐(0) 编辑
摘要: 序言linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system... 阅读全文
posted @ 2014-04-17 20:58 LubinLew 阅读(879) 评论(0) 推荐(0) 编辑
摘要: NAMEmq_setattr- 设置消息队列的属性(REALTIME)SYNOPSIS#include int mq_setattr(mqd_t mqdes, const struct mq_attr *restrict mqstat, struct mq_attr *restrict omqsta... 阅读全文
posted @ 2014-04-13 22:12 LubinLew 阅读(1304) 评论(0) 推荐(0) 编辑
摘要: NAMEmq_getattr- 获取消息队列的属性(REALTIME)SYNOPSIS#include int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat);Date StructureAnmq_attrstructure shall have at... 阅读全文
posted @ 2014-04-13 21:52 LubinLew 阅读(1885) 评论(0) 推荐(0) 编辑
摘要: NAMEmq_unlink- 销毁一个消息队列 (REALTIME)SYNOPSIS#include int mq_unlink(const char *name);DESCRIPTION函数mq_unlink() 会从内核中删除名为name的消息队列.如果该函数被调用了,但是仍然有进程已经打开了这... 阅读全文
posted @ 2014-04-13 19:48 LubinLew 阅读(2414) 评论(0) 推荐(0) 编辑
摘要: NAMEmq_receive- 从消息队列中获取消息 (REALTIME)SYNOPSIS#include ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio);DESCRIPTION函数mq_receive() 会mqdes 指定的消息队列中取出最高优先级中排队时间最久的消息.如果参数msg_len比消息队列的属性mq_msgsize小, 函数会执行失败.函数执行成功后,选定的消息会拷贝到参数msg_ptr指定的内存中并且从消息队列中删除.如果参数msg_len比 {SSIZE_M 阅读全文
posted @ 2014-04-09 19:40 LubinLew 阅读(4318) 评论(0) 推荐(0) 编辑
摘要: NAMEmq_send - 将消息发送到消息队列 (REALTIME)SYNOPSIS#include int mq_send(mqd_tmqdes, const char *msg_ptr, size_tmsg_len,unsignedmsg_prio);DESCRIPTION函数mq_send() 会将参数msg_ptr指向的内容发送给参数mqdes 指向的消息队列.参数msg_len指定消息的大小(用字节数表示).参数msg_len的值应该不大于消息队列的属性mq_msgsize的值, 否则函数执行失败.如果指定的消息队列不为空,mq_send() 的操作类似将消息插入在消息队列的指定位 阅读全文
posted @ 2014-04-03 16:57 LubinLew 阅读(4888) 评论(0) 推荐(1) 编辑
摘要: NAMEmq_close - 关闭一个消息队列 (REALTIME)SYNOPSIS#include int mq_close(mqd_t mqdes)DESCRIPTIONmq_close() 函数会断开消息队列描述符 和 与之对应消息队列间的连接. 使用关闭后的消息队列描述符,结果是未定义的.如... 阅读全文
posted @ 2014-04-03 14:50 LubinLew 阅读(1170) 评论(0) 推荐(0) 编辑
摘要: DESCRIPTION消息队列本身是异步的,它允许接收者在消息发送很长时间后再取回消息,这和大多数通信协议是不同的。但消息队列的异步特点,也造成了一个缺点,就是接收者必须轮询消息队列,才能收到最近的消息。和信号相比,消息队列能够传递更多的信息。与管道相比,消息队列提供了有格式的数据,但仍然有大小限制... 阅读全文
posted @ 2014-04-03 10:17 LubinLew 阅读(4298) 评论(0) 推荐(0) 编辑
摘要: NAMEmq_open - 打开一个消息队列 (REALTIME)SYNOPSIS#include mqd_t mq_open(const char *name, int oflag, ...)mqd_t mq_open(const char *name, int oflag, mode_t mode, mq_attr* attr) //O_CREATDESCRIPTIONmq_open() 函数会通过一个消息队列描述符(类型是mqd_t)建立一个进程与一个消息队列的连接. 该函数会创建一个打开的消息队列的描述符,其他函数就可以通过这个描述符操作消息队列.PARAMETERS①name参数na 阅读全文
posted @ 2014-04-03 10:16 LubinLew 阅读(10866) 评论(0) 推荐(0) 编辑
摘要: No.关键字意义备注1auto声明自动变量 2break跳出当前循环 3caseswitch语句的分支 4char声明字符型变量 5const声明只读变量C90新增6continue结束当前次循环,进入下次循环 7defaultswitch语句的默认分支 8do循环语句的循环体 9double声明双精度型变量 10elseif语句的否定分支 11enum声明枚举类型C90新增12extren声明变量是在其他文件中定义 13float声明浮点型变量 14for一种循环语句 15goto无条件跳转语句 16if条件语句 17inline建议编译器做内联展开处理C99新增18int声明整型变量 19 阅读全文
posted @ 2014-03-31 17:14 LubinLew 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 1,K&R C1978年, Dennis Ritchie和Brian Wilson Kernighan合作出版了《The C Programming Language》的第一版。书中介绍的C语言标准也被C语言程序员称作“K&R C”,第二版的书中也包含了一些ANSI C的标准。英文版 :http://pan.baidu.com/s/1pJyNrGf中文版 :http://pan.baidu.com/s/1i3mOmPZ2, ANSI C(美国标准)、C891989年,C语言被 ANSI 标准化(ANSI X3.159-1989),也称为C89。3, C90、ISO C(世界标准 阅读全文
posted @ 2014-03-31 16:37 LubinLew 阅读(1005) 评论(0) 推荐(0) 编辑
摘要: 优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)/函数名(形参表).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名2-负号运算符-表达式右到左单目运算符(类型)强制类型转换(数据类型)表达式++自增运算符++变量名/变量名++单目运算符--自减运算符--变量名/变量名--单目运算符*取值运算符*指针变量单目运算符&取地址运算符&变量名单目运算符!逻辑非运算符!表达式单目运算符~按位取反运算符~表达式单目运算符sizeof长度运算符sizeof(表达式)3/除表达式/表达式左到右双目运算符*乘表 阅读全文
posted @ 2014-03-30 21:35 LubinLew 阅读(902) 评论(0) 推荐(0) 编辑
摘要: 序一个编译过程包括下面4个阶段预处理,预处理器CPP主要进行3个方面:文件包含、宏定义、条件编译;编译,gcc将c文件编译成汇编文件;汇编,as将汇编文件编译成机器码;链接,ld将目标文件和外部符号进行链接,得到一个可执行二进制文件。下面以一个简单的test.c来探讨这个过程#define NUMB... 阅读全文
posted @ 2014-03-30 21:18 LubinLew 阅读(1059) 评论(0) 推荐(0) 编辑
摘要: 1、什么是交换分区交换分区的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。2、关于swap交换分区的设置一种流行的、以讹传讹的说法是,安装Linux系统时,交换分区swap的大小应该是内存的两倍。也就是说,如果内存是2G,那么就应该分出4G的硬盘空间作为交换空间,其实这是严重的浪费。真实的情况是:可以根据你系统内存的大小,以及所使用的程序,自行决定交换分区的大小,甚至可以完全不用交换分区!做一个假设:如果你的内存足够大,极少出现内存不足的情况,那么你就不需要交换分 阅读全文
posted @ 2014-03-30 19:58 LubinLew 阅读(1358) 评论(0) 推荐(0) 编辑
摘要: 序在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中的两种链接Lin... 阅读全文
posted @ 2014-03-30 18:44 LubinLew 阅读(6338) 评论(0) 推荐(2) 编辑
摘要: C++中允许为函数提供默认参数,又名缺省参数。使用默认参数时的注意事项:① 有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在二者之一double sqrt(double f = 1.0); //函数声明double sqrt(double f) //函数定义{ // ....... 阅读全文
posted @ 2014-03-25 15:46 LubinLew 阅读(26285) 评论(0) 推荐(4) 编辑
摘要: 1.隐式类型转换1.1 隐式类型转换的规则K & R A.6.5Arithmetic Conversions(数值型间的转换)First, if either operand is long double, the other is converted to long double.Otherwis... 阅读全文
posted @ 2014-03-25 14:42 LubinLew 阅读(535) 评论(0) 推荐(0) 编辑
摘要: The computer program memory is organized into the following:Data Segment (Data + BSS + Heap)StackCode segmentDataThe data area contains global and static variables used by the program that are explicitly initialized with a non-zero (or non-NULL) value. This segment can be further classified into a r 阅读全文
posted @ 2014-03-21 22:06 LubinLew 阅读(1586) 评论(0) 推荐(0) 编辑
摘要: C++98是第一个正式的C++标准, C++03是在C++98上面进行了小幅度的修订, C++11则是一次全面的大进化(之前称C++11为C++0x,以为会在08~09年公布,没想到拖到了11年)。 C++14 C++17 C++20 C++23 C++98 (1998年) http://pan.b 阅读全文
posted @ 2014-03-18 13:01 LubinLew 阅读(5484) 评论(2) 推荐(1) 编辑
摘要: 引用是某个对象(即变量)的别名.即某个对象的替代名称(相同于一个人的小名).引用是一个左值,在C++中,引用主要用来定义函数的参数和函数返回类型.因为引用只需要传递一个对象的地址,在传递大型对象的函数参数或从函数返回大型对象时,可以提高效率.使用引用时的注意事项:①在定义引用时,引用符&与指针运算符... 阅读全文
posted @ 2014-03-17 22:25 LubinLew 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 1、malloc在C和C++中的区别1.1、C中可以将任意的指针赋值给void*类型的变量。也可以将void*类型的值赋值给通常的指针变量。--------------------------------------------------------------------------------... 阅读全文
posted @ 2014-03-17 20:46 LubinLew 阅读(599) 评论(0) 推荐(0) 编辑
摘要: C++对C语言的结构、联合、枚举 这3种数据类型进行了扩展。1、C++定义的结构名、联合名、枚举名 都是 类型名,可以直接用于变量的声明或定义。即在C++中定义变量时不必在结构名、联合名、枚举名 前加上前缀struct、union、enum。例如有如下头文件(head.h)//head.henum color {red,blak,white,blue,yellow};struct student {char name[6]; int age; int num;};union score {int i_sc; float f_sc;}; 在C中使用的使用的方法#include "hea 阅读全文
posted @ 2014-03-16 16:20 LubinLew 阅读(10890) 评论(0) 推荐(0) 编辑
摘要: 在C语言中,局部变量应该在函数的可执行语句之前定义,但在C++中变量可在任何语句位置定义,只要允许程序语句的地方,都允许定义变量。在C99标准中C同C++一样允许在for循环语句中定义变量。并且这个变量作用域被限定在for循环中,在for循环外就成为了未定义变量(C++也是)。※GCC下编译时需要加上std选项,例如 gccexample.c-std=c99看一段程序,在for语句中声明了变量i 和 k,(允许在for循环语句中定义变量:指的是程序中i和k这2种形式)这一段程序只有在Microsoft Visual C++ 6.0 才能编译通过,在Microsoft Visual Studio 阅读全文
posted @ 2014-03-16 14:07 LubinLew 阅读(5534) 评论(0) 推荐(0) 编辑
摘要: UT - 世界时Universal Time世界时是最早的时间标准。在1884年,国际上将1s确定为全年内每日平均长度的1/8.64×104。以此标准形成的时间系统,称为世界时,即 UT1。1972年国际上开始使用国际原子时标,从那以后,经过格林威治老天文台本初子午线的时间便被称为世界时,即UT2,或称格林威治时间(GMT),是对地球转速周期性差异进行校正后的世界时。TAI - 国际原子时international atomic time1967年第13届国际度量衡会议上通过一项决议,定义 1s 为铯-133原子基态两个超精细能级间跃迁辐射9,192,631,770周所持续的时间,这 阅读全文
posted @ 2014-03-14 21:49 LubinLew 阅读(22829) 评论(2) 推荐(2) 编辑
摘要: 【转载】http://lxdawn.blog.163.com/blog/static/173620990201273111337204/Tail-chaining是指一个中断退出至下一个中断进入这段时间的动在工控领域,用户要求具有更快的中断速度,Cortex-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少 70%中断。当CPU服务于某个中断(假设为A)时,如果有优先级低于当前中断的其它中断到达,它们(假设有B、C、D)将会被至于挂起状态;当前中断的处理结束后,所有处于挂起状态的中断中优先级最高的哪个(假设是C)将要被响应( 阅读全文
posted @ 2014-03-14 21:45 LubinLew 阅读(3859) 评论(0) 推荐(0) 编辑
摘要: 【转载】http://hi.baidu.com/dannie007zxl/item/5d0c3185577df719c3162724有的时候,我们对身旁自认为熟悉的东西,却发现很难去给出准确的回答。习惯了程序在脑袋中自上向下的执行,默认程序也是如此。学习switch语句的时候,接受下面这样的程序:/... 阅读全文
posted @ 2014-03-13 21:07 LubinLew 阅读(4632) 评论(1) 推荐(0) 编辑
摘要: 0、功能Performs conditional processing in batch programs.执行批处理程序中的条件处理。1、简介IF [NOT] ERRORLEVEL number commandIF [NOT] string1==string2 commandIF [NOT] EXIST filename command NOT # Specifies that Windows should carry out the command only if the condition is false. 指定只... 阅读全文
posted @ 2013-11-25 19:06 LubinLew 阅读(967) 评论(0) 推荐(0) 编辑