自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(240)
  • 资源 (2)
  • 收藏
  • 关注

转载 C++ 虚函数表解析

前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。  关于虚函数的使

2014-10-27 15:22:31 911

转载 C++中virtual 析构函数

我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:        有下面的两个类:class ClxBase{public:    ClxBase() {};    virtual ~ClxBase() {};    virtual void DoSomething() { cout  "Do 

2014-10-21 15:34:14 1096

转载 C/C++函数返回局部变量相关问题

C/C++函数返回局部变量相关问题函数返回局部变量的时候会遇到各种各样的情况,涉及到内存相关的东西时一定要小心是否会出错。1、常见栈内变量一般来说,在函数内对于存在栈上的局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错;但是如果返回的是局部变量的地址(指针)的话,就造成了野指针,程序运行会出

2014-10-20 15:20:12 1350 1

转载 private 继承

我觉得私有继承在设计模式中也有作用。私有继承的子类一般不希望被其它的类所继承。有一种设计原则: 能够被继承的类都应该是虚类;能够实例化的类都不应该被继承。而私有类恰恰能够很好的实现该原则。转一个帖子:http://www.4ucode.com/Study/Topic/977313正文        昨晚阅读Gof的设计模式时,提到Adapter(适配器)有两种,

2014-10-20 10:16:07 1014

转载 shell脚本抽取制定字符串、grep+awk+cut+sed

在linux中经常要对一些动态的文本文件抽取指定的字符串,比如执行ps命令后想要获取指定的运行进程(如ps自己)的PID号(同一个进程每次启动的时候pid号是随机分配的)。该怎么办呢?当然,可以用一些截取字符串的方法,这里介绍一下用2种方法来解决这类问题。一、sed+grep方法:首先大概了解一下sed,sed是linux里面一个非交互性的文本流编辑器(好长的定义,反正我听起来我很

2014-10-08 10:52:36 22221 1

转载 linux shell 命令 set -e

set -eset命令的-e参数,linux自带的说明如下:"Exit immediately if a simple command exits with a non-zero status."也就是说,在"set -e"之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出。-z 字符串为"null",即是指字符串长度为零。-n 字符串不为"nu

2013-11-21 10:31:05 2998

转载 传递动态内存

当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道.这些往往会使人受尽折磨.所以如果你想深入C/C++编程,你必须静下心来,好好苦一番.现在我们将讨论C/C++里我认为哪一本书都没有完全说清楚,也是涉及概念细节最多,语言中最难的技术之一的动态内存的传递.并且在软件开发中很多专业人员并不能写出相关的合格的代码.【引入】 看下面的例子,这是我们在编写库函数或者项目内的共同函

2013-10-25 16:17:18 786

转载 内存分配错误例子& 改正

void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void)  { char *str = NULL; GetMemory(str);  strcpy(str, "hello world"); printf(str); }  请问运行 Test 函数会有什么样的结果? 答

2013-10-25 16:10:48 1037

转载 【C++】

4、在 C++  程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”?  (5 分) 答:C++语言支持函数重载,C 语言不支持函数重载。函数被 C++编译后在库中的名字与 C 语言的不同。假设某个函数的原型为:  void foo(int x, int y); 该函数被 C 编译器编译后在库中的名字为_foo,而 C++编译器则会产生像_foo_int_int

2013-10-25 14:54:44 655

转载 char str[]与char *str 有什么区别?

http://bbs.csdn.net/topics/340054368123char *str = "abcde"; //str指向字符常量区,不能更改其指向的内容; char str[] = {"abcde"}; //空间分配在堆栈上,可以更改

2013-10-25 10:44:05 845

转载 lte学习

2013-10-22 13:53:15 659

转载 C++类中的static数据成员,static成员函数

http://www.cnblogs.com/gysm/archive/2011/09/16/2179277.htmlC++类中谈到static,我们可以在类中定义static成员,static成员函数!C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比

2013-08-08 14:14:11 711

转载 Hash Table 哈希表 C++ 例子

What's a Hash Table? Why we need a Hash Table?By Using a Hash Table we can find element very quickly. For example, There are 20 random number in an array below.It's not a sorted arra

2013-07-16 14:24:54 5520

转载 C++引用与指针的比较

引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m; n相当于m的别名(绰号),对n的任何操作就是对m的操作。 所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。 引用的规则: (1)引用被创建的同时必须被初始化(指针则可以

2013-07-11 16:07:38 616

转载 C++拷贝构造函数详解

http://blog.csdn.net/lwbeyond/article/details/6202256

2013-06-26 09:38:26 527

转载 C++ 拷贝构造函数 赋值构造函数

C++ 拷贝构造函数 赋值构造函数拷贝构造函数和赋值构造函数的异同由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数有些轻视。请先记住以下的警告,在阅读正文时就会多心:如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数。倘若类中含有指针变量,那么这两个缺省的函数就隐含了错误。以类String 的两个对象a,b 为例,假设a.m_

2013-06-26 09:29:11 975

转载 makefile文件的作用

Makefile详解跟我一起写 Makefile陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义。特别在Un

2013-06-04 10:44:07 3656

转载 linux cut 命令详解。。。

一、定义       正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut是以每一行为一个处理对象的,这种机制和sed是一样的。 2、剪切依据cut命令主要是接受三个定位方法:第一,字节(bytes),用选项-b第二,字符(characters),用选项-c第三,域(fields),用选项-f 例:一,按字节cut:注意:一个空

2013-06-04 10:43:12 1019

转载 Linux命令——cut命令学习

一、定义       正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut是以每一行为一个处理对象的,这种机制和sed是一样的。 2、剪切依据cut命令主要是接受三个定位方法:第一,字节(bytes),用选项-b第二,字符(characters),用选项-c第三,域(fields),用选项-f 例:一,按字节cut:注意:一个空

2013-06-04 10:42:24 605

转载 big and little endian

概括:big endian: 高byte低地址。0x123456 12 34 56 (低地址--高地址)little endian:低byte 低地址。 0x123456 56 34 12 (低地址--高地址) 谈到字节排序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列 CPU。PowerPC系列采用big endia

2013-05-16 10:03:32 753

转载 memset ,memcpy 和strcpy 的根本区别?

strcpy原型:extern char *strcpy(char *dest,char *src);用法:#include 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。    返回指向dest的指针。例:char a[100],b[50];strcp

2013-05-14 14:54:15 626

原创 python exercise

Python code examples:1.     find the position of an item in a list in pythonthe index() methodlist = [“red”,”green”,”blue”]assert list.index(“red”) == 0 2.     test if a value is con

2013-05-13 14:54:38 821

转载 perror函数,strerror函数,errno

#include // void perror(const char *msg);#include // char *strerror(int errnum);#include //errnoerrno 是错误代码,在 errno.h头文件中;perror是错误输出函数,输出格式为:msg:errno对应的错误信息(加上一个换行符);strerror 是通过参数 errn

2013-05-09 13:42:36 891

转载 C++ string 详解。各类函数等

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。    好了,进入正题………首先,为了在我们的程序中使用

2013-05-09 13:41:52 564

转载 函数的参数为对象本身和对象的引用【函数参数为引用】

不一样,一个是复制传递,一个是引用传递。复制传递时将对象复制一遍,在函数中的对象和原对象值相同,但是地址不同,函数中若修改对象的值,原对象不会受到影响,当函数执行完时,复制的对象会被销毁。而引用传递不会复制,只是将原对象的地址传过去,类似指针。此时函数中的对象和原对象是一个东西,相同的地址,可能名字不一样而已。一般传递对象时使用的是引用传递,效率更高。对象一般比较大,复制的话销毁的时间

2013-05-02 15:34:15 1315

转载 关于指向结构体的指针——又一个指针用法中容易忽略的问题

#include #include #include struct test { char userid[6]; char passwd[8]; }; int main ( void ) { struct test *Test; Test = malloc(sizeof(struct test)); fprintf(stderr,"

2013-05-02 15:22:00 735

转载 uptime2 /proc/uptime

在Linux中,我们常常会使用到uptime命令去看看系统的运行时间,它与一个文件有关,就是/proc/uptime,下面对其进行详细介绍。View Code BASH1234master@jay-intel:~$ cat /proc/uptime6447032.12 48185264.69master@jay-intel:~

2013-04-15 16:42:45 800

转载 uptime 之一 /proc/uptime

uptime命令是用来查询linux系统负载的!用法:直接输入uptime即可.另外还有一个参数  -v(大写)是用来查询版本的[root@ localhost]$ uptime –V(大写)       procps version 3.2.7以下显示输入uptime的信息:04:03:58 up 10 days, 13:19,  1 user,  load av

2013-04-15 16:42:11 2744

转载 关于string 和 char * 区别

区别主要是:string的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。char *的内存管理由用户自己处理,很容易出现内存不足的问题。当我们要存一个串,但是不知道其他需要多少内存时, 用string来处理就最好不过了。当你知道了存储的内存的时候,可以用char *,但是不如用string的好,用指针总会有隐患。用string还可以使用各种成员函数来处理串的每一个

2013-03-13 09:38:34 774

原创 【plan】2013年度计划

一年之计在于春。。新的一年要干点什么呢?1.语言学习(编程和外语)2.DY无聊的时候就看看书。3.工作的条理。逻辑性、担当。。。4.wedding things5.回报父母6.提升幸福的能力,包容、少计较。。。。生气的时候默数5遍普罗旺斯O(∩_∩)O~

2013-03-06 14:42:51 586

转载 细说linux挂载——mount,及其他…

http://forum.ubuntu.com.cn/viewtopic.php?t=257333

2013-02-20 14:53:59 448

原创 linux bash cmd

1.备份最后 24 小时当前目录下 d 所有修改的文件. tar cvf - `find . -mtime -1 -type f -print` > $archive.tar2. positional parameters    就是从命令行中传进来的参数,$0, $1, $2, $3...    $0 就是脚本文件的名字,$1 是第一个参数,$2 为第2个...,参见[1

2013-02-20 11:19:09 461

转载 shell经典,shell十三问

http://blog.csdn.net/dl88250/article/details/1719687

2013-01-25 15:36:37 644

转载 linux下添加链接与删除链接(ln命令的用法)

linux下添加链接与删除链接(ln命令的用法)添加链接使用ln命令用法:#ln --help用法:ln [选项]... 目标 [链接名]或:ln [选项]... 目标... 目录或:ln [选项]... --target-directory=目录 目标...创建连至指定的链接,并可选择性指定。如果没有指定,会在目前的目录中创建一个和名称一样的链接。当使用第

2013-01-25 15:26:53 26288

转载 汉诺塔问题递归算法分析:

汉诺塔问题递归算法分析:  一个庙里有三个柱子,第一个有64个盘子,从上往下盘子越来越大。要求庙里的老和尚把这64个盘子全部移动到第三个柱子上。移动的时候始终只能小盘子压着大盘子。而且每次只能移动一个。  1、此时老和尚(后面我们叫他第一个和尚)觉得很难,所以他想:要是有一个人能把前63个盘子先移动到第二个柱子上,我再把最后一个盘子直接移动到第三个柱子,再让那个人把刚才的前63个盘子从

2013-01-17 17:11:06 808

转载 shell 语法与C语言对比

shell 语法与C语言对比要实现的功能C语言编程Linux Shell脚本编程程序/脚本的参数传递int main(int argc, char** argv){if (argv != 4) {    printf( “Usage: %s arg1 arg2 arg3”, argv[0]

2013-01-16 13:27:55 751

转载 vi 特殊字符串替换

vi编辑器替换命令::%s/s1/s2/    用字符串s2替换每行的第一个字符串s1:%s/s1/s2/gc   用字符串s2替换每行的所有字符串s1:n,$s/s1/s2/   用字符串s2替换从n行开始到最后一行,每行的第一个字符串s1:n,$s/s1/s2/gc   用字符串s2替换从n行开始到最后一行的所有字符串s1n若为.,则表示从当前行开始到最后一行:s/s1

2013-01-16 10:36:13 10513

转载 LINUX中使用VIM替换报错:pattern not found

在VIM中使用替换命令: :s/rac1/szserver_72/g 报错:pattern not found  ,但rac1实际是存在的 可以这样处理即可:(即将s改为%s,g改为ge) :%s/rac1/szserver_72/ge

2013-01-16 10:35:30 10052 2

原创 最近的心情

混沌中度日有时候都忘记了是周几,这也许是最近几天才有的状态。非常不喜欢现在的自己。很是讨厌。迷茫的度日,黑暗中前行。似乎连自己想要什么都木有了目标与追求我不想与众不同,也不想在人海中lost了自己于是任泪水横流,遍体鳞伤也已经剑指远方。只是想以后的回忆里让自己不再惆怅。 人活着的一天不应该是重复,而是新的轨迹。而我却明知如此,真的希望这只是一种职业吗?为什么不当做自

2012-11-28 15:25:59 447

转载 Linux 指令篇:讯息传送与信件管理--wall

名称 : wall     使用权限 : 所有使用者     使用方式 :     wall [ message ]   使用说明:   wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)。     例子 :     传讯息"hi" 给每一个使用者

2012-11-06 10:07:58 463

clear case

网络配置管理软件,网络配置管理软件,网络配置管理软件,网络配置管理软件,

2011-03-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除