胖奇 的专栏

The Pursuit of Happyness

C++析构函数为什么要为虚函数

1.为什么基类的析构函数是虚函数?   在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。   下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html   a.第一段代码 ...

2013-08-30 14:08:22

阅读数 440

评论数 0

Mutex vs. Semaphore, what is the difference?

Mutex vs. Semaphore, what is the difference? The Toilet Example  (c) Copyright 2005, Niclas Winquist ;) Mutex: Is a key to a toilet. One perso...

2013-08-28 14:43:22

阅读数 355

评论数 0

大话设计模式之一:单例模式

定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 类型:创建类模式 类图: 类图知识点: 1.类图分为三部分,依次是类名、属性、方法 2.以>结尾的为注释信息 3.修饰符+代表public,-代表private,#代表prot...

2013-07-19 13:45:05

阅读数 390

评论数 0

vector,list,deque,set,map of STL

List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。 Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随...

2013-07-19 09:55:53

阅读数 377

评论数 0

STL中vector、list、deque和map的区别

1 vector     向量 相当于一个数组     在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以v...

2013-07-19 09:48:10

阅读数 457

评论数 0

for循环中有多个限制结束条件的正确写法(小心逗号运算符)

for(i=a,j=b; id; i++,j--){....} 这种写法其实是逗号运算符, id 结果就是 j>d的结果~~ 要想限制,必须要加上&& 正确写法如下: for(i=a,j=b; id; i++,j--){....}  ...

2013-07-18 08:46:34

阅读数 2480

评论数 0

Linux源码中的mktime算法解析

我们知道,从CMOS中读出来的系统时间并不是time_t类型,而是类似于struct tm那样,年月日时分秒是分开存储的。     那么,要把它转化为系统便于处理的time_t类型,就需要算法进行转换。     我们都知道我们的公历还是比较复杂的,有大月小月,有闰年非闰年,处理起来会很...

2013-07-05 15:33:02

阅读数 296

评论数 0

C++拷贝构造函数(深拷贝,浅拷贝)

对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a;  而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。  #include iostream> using name...

2013-05-28 16:17:28

阅读数 301

评论数 0

memcpy实现及优化

1:函数原型void * memcpy ( void * destination, const void * source, size_t num ); 函数作用 参考:http://www.cplusplus.com/reference/clibrary/cstring/memcpy...

2013-05-28 15:21:39

阅读数 482

评论数 0

C++多态的实现原理

1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。 3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。 ...

2013-05-21 17:05:28

阅读数 317

评论数 0

C++中引用(&)的用法和应用实例

C++中引用(&)的用法和应用实例 对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 ...

2013-04-01 16:34:25

阅读数 324

评论数 0

DHCP for IPv6原理及工作过程

1 DHCPv6概述     即插即用和自动配置是IPv6的一大优势,是目前研究的热点之一。与IPv4相对应,IPv6中的“被动”地址分配协议是动态主机配置协议DHCPv6。    DHCPv6(Dynamic Host Configuration Protocol for IPv6,...

2013-01-11 08:49:04

阅读数 11215

评论数 2

用C++ 设计一个不能被继承的类

题目:用C++ 设计一个不能被继承的类。 分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。 在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键...

2013-01-10 09:13:14

阅读数 236

评论数 0

排序算法

1.冒泡排序 10个整数 void maopao(int *list) { int i,j,temp; for(i=0;i<9;i++) for(j=0;j<9-i;j++) { if(lis...

2012-04-05 17:20:09

阅读数 172

评论数 0

编程实现位操作

1.对整型变量a,设置a的bit3,清楚a的bit3,保持其他位不变 #define BIT3 (0x1<<3) static int a; void set_bit3() { a |=BIT3; } void clear_bit3() { a &=~BIT3...

2012-04-05 15:33:23

阅读数 173

评论数 0

C++面试宝典2011

1.new、delete、malloc、free关系 delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言...

2012-04-05 10:03:12

阅读数 282

评论数 0

函数重写

重写strcpy函数 char *strcpy1(char * str1, const char * str2) { assert((str1!=NULL)&&(str2!=NULL)); char *address =str1; while(...

2012-04-01 17:25:34

阅读数 323

评论数 0

一次遍历找出整型数组中第二大数

const int MIN=-32767; int find_sed_max(int data[],int count) { int max_num=data[0]; int sed_num=MIN; for(int i=1;i<count;i++) { ...

2012-03-31 14:24:04

阅读数 1141

评论数 0

华为面试

1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函...

2012-03-28 11:22:58

阅读数 292

评论数 0

linux的启动进程与服务

当年对dos开机流程熟知,帮助我解决了不少问题。对于Linux的研究自然也少不了这部分基础知道。LINUX的启动过程究竟是怎么样的?它要启动哪些服务?这些服务是做什么用的? deflag的这篇文章值得一读。 本文以RED HAT LINUX9为范例介绍,其实大部分的LINUX都有相同的启...

2012-03-26 09:09:20

阅读数 225

评论数 0

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