08 2012 档案

摘要:面向对象的三大特性是封装,继承和多态,本文主要介绍C++里的多态特性 在编译器把函数或模板连接生产执行代码的过程中,有两种联编方式,一种是静态联编,另外一种是动态联编, 静态联编是在编译阶段就把函数连接起来,就可以确定调用哪个函数或者模板,而动态联编是指在程序运行时才能确定函数和实现的连接,才能确定调用哪个函数 根据联编的方式我可以把多态(函数多种形态)分成两种,静态多态和动态多态,网上有些资料有四种,多出了宏多态和函数多态,但我个人认为这两种应该属于静态多态 动态多态 主要通过继承和虚函数实现,父类指针或者引用能够指向子类对象,调用子类的虚函数,所有在编译时是无法确定调用哪个虚... 阅读全文
posted @ 2012-08-31 00:01 bizhu 阅读(9321) 评论(1) 推荐(3)
摘要://C++中的虚函数的作用主要是实现了多态的机制。关于多态,//简而言之就是用父类型别的指针指向其子类的实例,//然后通过父类的指针调用实际子类的成员函数//每个类都维护着一张虚函数表,//调用虚函数时查看对象是那个类,然后查表//基类可以使用为纯虚函数(virtual void print()=0),//基类就是抽象类,要求子类实现//重载(overload)//1.相同作用域(同类)//2.函数名相同//3.参数不同(参数类型,个数,顺序)//4.virtual关键字可有可无////覆盖(重写override)//1.位于不同作用域(父子类)//2.函数名称相同//3.参数也相同//4.v 阅读全文
posted @ 2012-08-27 23:19 bizhu 阅读(543) 评论(0) 推荐(0)
摘要:8月27起持续更新....综合http://www.cnblogs.com/rollenholt/category/300627.htmlhttp://www.thegeekstuff.com/2012/08/c-interview-questions/析构函数http://www.cnblogs.com/daoluanxiaozi/archive/2011/12/09/2281796.html代码实现(strcpy)http://www.chinaunix.net/old_jh/23/25356.html(memcpy)http://liangbing8612.blog.51cto.com/ 阅读全文
posted @ 2012-08-27 22:35 bizhu 阅读(347) 评论(0) 推荐(0)
摘要:4. 二叉查找树(BST)Technorati 标记:二叉查找树,BST,二叉查找树合并4.1 BST数据结构定义使用C++语言,如果需要使用BST,那么不用重新造轮子了,C++语言里的map, set等STL容器应该可以满足需求了(虽然STL里这些容器大多是以红黑树作为其底层实现),如果你需要使用小/大根堆(也叫优先队列,特殊的、自平衡的BST),STL也能满足你的需求(可以参考这里:http://www.cnblogs.com/dskit/archive/2009/12/13/1623152.html)。先来看下BST的定义,BST是满足如下3个条件的二叉树:1. 节点的左子树包含的节点的 阅读全文
posted @ 2012-08-19 13:00 bizhu 阅读(18600) 评论(5) 推荐(2)
摘要:1. 打靶问题的递归解法Technorati 标记:递归算法,字典法,二分法,打靶问题,日期问题,求幂,多项式求值伦敦奥运会火热进行中,让我们来看个打靶的问题:一个射击运动员打靶,靶一共有10环,求连开10枪打中90环的可能行有多少种?分析:这是一个典型递归求解问题。假设第10枪打x环,则将问题转换为剩下9枪打90-x环的可能有多少种,x的取值范围为[0, 10],根据加法原理,则:10枪打90环的可能 = 第10枪打0环,剩下9枪打90环的可能 + 第10枪打1环,剩下9枪打89环的可能 + 第10枪打2环,剩下9枪打88环的可能+ 第10枪打3环,剩下9枪打87环的可能 + 第10枪打4环 阅读全文
posted @ 2012-08-19 12:56 bizhu 阅读(515) 评论(0) 推荐(0)
摘要:排序是计算机算法中非常重要的一项,而排序算法又有不少实现方法,那么哪些排序算法比较有效率,哪些算法在特定场合比较有效,下面将用C++实现各种算法,并且比较他们的效率,让我们对各种排序有个更深入的了解。minheap.h 用于堆排序: 1 //使用时注意将关键码加入 2 #ifndef MINHEAP_H 3 #define MINHEAP_H 4 #include <assert.h> 5 #include <iostream> 6 using std::cout; 7 using std::cin; 8 using std::endl; 9 using std::ce 阅读全文
posted @ 2012-08-12 11:10 bizhu 阅读(2516) 评论(0) 推荐(0)
摘要:from:http://www.nowamagic.net/librarys/veda/detail/5191. 以下三条输出语句分别输出什么?1 char str1[] = "abc";2 char str2[] = "abc";3 const char str3[] = "abc"; 4 const char str4[] = "abc"; 5 const char* str5 = "abc";6 const char* str6 = "abc";7 cout <& 阅读全文
posted @ 2012-08-12 10:57 bizhu 阅读(3238) 评论(0) 推荐(1)
摘要:1、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1) 分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。(2)快速排序的基本思想 设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:①分解: 在R[low..high]中任选一 个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pi... 阅读全文
posted @ 2012-08-12 10:36 bizhu 阅读(407) 评论(0) 推荐(0)
摘要:linux启动序列1、CPU初始化 CPU自身初始化,从某个固定位置(0xfffffff0)取指令并执行,该指令为跳转指令,跳转到BIOS代码的首部。2、装载BIOS BIOS被固化在主板上的一个ROM中,它首先进行自检(POST),随后加载内核引导程序。 POST阶段进行系统硬件的检测,包括内存检测,系统总线检测等。3、读取MBR POST之后,BIOS会读取启动设备的第一个扇区(MBR),即512字节的信息,MBR保存了内核引导程序的开始部分,BIOS将其加载到内存并且执行。 MBR中的主引导程序,包含了446字节的程序代码和64字节的分区表。4、加载系统内核 执行MBR中的主引导程序程序 阅读全文
posted @ 2012-08-12 00:31 bizhu 阅读(417) 评论(0) 推荐(0)
摘要:#include <Windows.h> //必须放在mysql.h前#include <WinSock.h>#include "mysql.h"#pragma comment(lib, "ws2_32.lib") //必须的int _tmain(int argc, _TCHAR* argv[]){ MYSQL * con ; char hostName[] = "localhost"; char dbName[] = "test"; char dbuser[] = "root&q 阅读全文
posted @ 2012-08-07 16:58 bizhu 阅读(697) 评论(0) 推荐(1)
摘要:1.auto_ptr和shared_ptr只是适合用于管理heap(堆)上的内存,即动态分配的内存,但不是所有的资源都在heap上所有这两个智能指针并不适合用于资源管理,所有需要建立自己的资源管理类2.lock和unlock管理互斥对象Mutex的指针void lock(Mutex *pm)void unlock(Mutex *pm)希望在构造函数时调用lock(),在析构时调用unlock(),所有构建一个类class MagMutex{public: MagMutex(Mutex *pm):pClassM(pm) { lock(pClassM); } ~MagMutex(M... 阅读全文
posted @ 2012-08-06 23:02 bizhu 阅读(226) 评论(0) 推荐(0)