上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 17 下一页

2013年1月2日

C++中的单例模式

摘要: 原文地址:http://blog.csdn.net/hackbuteer1/article/details/7460019单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显的很不优雅。 使用全局对象能够保证方便地访问实例,但是不能保证只声明一个 阅读全文

posted @ 2013-01-02 22:27 zhuyf87 阅读(278) 评论(0) 推荐(0) 编辑

【面试题】 类的赋值运算符函数

摘要: 题目:CMyString类型声明如下,请为其添加“赋值运算符”函数。class CMyString{public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); private: char* m_pData;};对于此类问题,面试官通常关注以下几点:1. 返回值类型是否为引用,函数结束时是否“return *this;”。只有这样,才能允许CMyString类型对象的连续赋值。2. 参数类型是否为常量引用。如果传入参数非引用而是实例,则从形参到... 阅读全文

posted @ 2013-01-02 13:45 zhuyf87 阅读(793) 评论(0) 推荐(0) 编辑

2013年1月1日

Boost下载安装编译配置使用指南

摘要: 原文地址:http://www.cnblogs.com/wondering/archive/2009/05/21/boost_setup.html——更新于2011/7/19,目前我已对boost的安装和使用有了新的认识,因此也会对两年前写的这篇文章做大幅修改,网上转载版本泛滥,请以本文为准。理论上,本文适用于boost的各个版本,尤其是最新版本1.47.0;适用于各种C++编译器,如VC6.0(部分库不支持),VS2003,VS2005,VS2008,VS2010,gcc,C++ Builder等。先总结一下Windows系统。一、下载首先从boost官方主页http://www.boost 阅读全文

posted @ 2013-01-01 19:19 zhuyf87 阅读(256) 评论(0) 推荐(0) 编辑

【面试题】 c++ sizeof

摘要: 在c++面试中,sizeof是经常被问到的概念。问:定义一个空类型,里面没有任何成员变量和成员函数,对该类型求sizeof,结果是多少?答:结果是1。问:为什么不是0?答:空类型的实例中不包含任何信息,本来求sizeof应该是0,但是当声明该类型的实例时,它必须在内存中占有一定的空间,否则无法使用这些实例。至于占用多少内存,由编译器决定。Visual Studio中每个空类型的实例占1个字节的空间。问:如果在该类型中添加一个构造函数和析构函数,再对该类型求sizeof,结果是多少?答:仍然是1。调用构造函数和析构函数只需要知道函数地址即可,而这些函数的地址只与类型相关,与类型的实例无关,编译器 阅读全文

posted @ 2013-01-01 08:58 zhuyf87 阅读(463) 评论(0) 推荐(0) 编辑

2012年12月31日

TCP三次握手

摘要: 建立TCP连接的过程需要进行三次信息交换,通常称为“三次握手”,示意图如下:图中Seq代表TCP段首部中的“序号(Sequence Number)”:是TCP段所发送的数据部分第一个字节的序号。在TCP传送的数据流中,每一个字节都有一个序号。建立连接时,发送方将初始序号(Initial Sequence Number, ISN)填写到第一个发送的TCP段序号中。图中Ack代表TCP段首部中的“确认号”:是期望收到对方下次发送的数据的第一个字节的序号,也就是期望收到的下一个TCP段的首部中的序号,等于已经成功收到的TCP段的最后一个字节序号加1。确认号在ACK标志为1时有意义,除了主动发起连接的 阅读全文

posted @ 2012-12-31 14:29 zhuyf87 阅读(3064) 评论(2) 推荐(0) 编辑

TCP状态描述

摘要: TCP的有限状态机用来管理一个连接,当第一次运行时,连接从一个初始状态CLOSED开始,当两个应用程序开始通信时,经过一系列的TCP段交换和状态变迁,直到成功建立连接,两端都处于ESTABLISHED状态,正常的数据发送和接收都发生在这一状态。TCP的大部分时间也处于这一状态,当发生错误或程序退出通信时,关闭连接,经历一系列相关的状态变迁,返回到最初的CLOSED状态。标准给出了在TCP连接的各个状态中,发生某些事件要执行的动作和状态转移行为。下表对TCP各个状态进行简单的描述。状态描述CLOSED连接的起始状态,这是一个“虚构”的状态,实际上此时还没有连接存在,也没有传输控制块(TCB)LI 阅读全文

posted @ 2012-12-31 12:17 zhuyf87 阅读(499) 评论(0) 推荐(0) 编辑

希尔排序

摘要: 1. 算法思想希尔排序(Shell Sort),也称递减增量排序,是插入排序的一种高速而稳定的改进版本。希尔排序按其设计者希尔(Donald Shell)的名字命名,该算法由1959年公布。希尔排序是基于插入排序的如下性质而进行改进的:插入排序在对几乎已经排好序的数据操作时,效率非常高,可以达到线性排序的效率。该方法的基本思想是:先将整个待排序列分成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此 阅读全文

posted @ 2012-12-31 10:05 zhuyf87 阅读(398) 评论(0) 推荐(0) 编辑

希尔排序代码实现

摘要: // 希尔排序1void ShellSort1(int data[], int count){ int step = 0; int auxiliary = 0; for (step = count / 2; step > 0; step /= 2) { for (int i = 0; i < step; ++i) { for (int j = i + step; j < count; j += step) { // 直接插入排序 if ... 阅读全文

posted @ 2012-12-31 10:01 zhuyf87 阅读(2112) 评论(0) 推荐(0) 编辑

2012年12月30日

c++ 从标准异常类别(Exception Classes)派生新类别

摘要: (1)直接派生自exception,自己实现what()函数。namespace MyLib { /* user-defined exception class * derived from a standard class for exceptions */ class MyProblem : public std::exception { public: … MyProblem(…) { // special constructor } virtual const char* what() const throw() { // what() function... 阅读全文

posted @ 2012-12-30 14:18 zhuyf87 阅读(492) 评论(0) 推荐(0) 编辑

c++ 抛出标准异常

摘要: 可以在自己的程序中抛出某些标准异常。抛出标准异常时,只需生成一个描述该异常的字符串,交给异常对象,它将成为what()返回的描述字符串。std::string s;…throw std::out_of_range(s);throw std::out_of_range(“out_of_range (somewhere, somehow)”);提供这种功能的标准异常有:logic_error及其派生类别、runtime_error及其派生类别、ios_base::failure。不能抛出exception,也不能抛出任何用以支持语言核心性质的异常(bad_alloc、bad_cast、bad_ty 阅读全文

posted @ 2012-12-30 13:37 zhuyf87 阅读(451) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 17 下一页

导航