摘要: 直接上代码吧,当然很不完善,留待日后进行修改。。。#includeusing namespace std;void change(char * arr,int a,int b){ //arr 是操作数组,a是操作数进制,b是目标进制 int value=0,i=0; int temp; int len=strlen(arr); /*所有的进制先转化为十进制*/ while(len--) { value=value*a+*(arr+len)-'0'; } while(value) { temp=value%b; value=v... 阅读全文
posted @ 2013-07-09 16:16 Air Support 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1.从字符串中查找子串并进行替换,如字符串abcdefg子串 cd替换成 1232.将数字转换成汉字。(正整数,最大为亿位)思路:将数字转化成字符串形式,计算其长度strlen(strnum);3.TCP的三次握手4.进程和线程的区别5.什么是重载,构造函数和析构函数是否可以被重载? 阅读全文
posted @ 2013-07-05 23:42 Air Support 阅读(144) 评论(0) 推荐(0) 编辑
摘要: C++虚继承的作用C++虚继承可以防止多重继承产生的二义性问题。 虚继承,就是在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,如下面代码中的base类。虚继承在多重继承的时可以防止二义性。 class base class derived1 : virutal public base class derived2 : virtual public base class derived3 : public derived1, public derived2以上的代码如果用到了base中的某个成员变量就不会产生二义性。和#progma once在头文件中的作用类似。请看下面的例 阅读全文
posted @ 2013-07-04 23:54 Air Support 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 设计模式--工厂模式在软件系统中,经常面临着“某个对象”由于需求的变化,对象的具体实现面临着剧烈的变化。为了应对这种变化我们抽象出它比较稳定的接口,隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变,这就是要说的Factory Method模式了。定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。简单工厂:例子:如果生活中有两种灯一种是灯泡,另一种是灯管,它们都有两个方法TurnOn()和TurnOff(),有两个人,一个人会做灯泡,一个人会做灯管,他们两个各自做各自的。 如果我要订两批灯一批 阅读全文
posted @ 2013-07-04 23:22 Air Support 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。一、友元函数友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加 阅读全文
posted @ 2013-07-03 15:54 Air Support 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1、C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作。因此,被做为隐式类型转换使用。比如:int i;float f = 166.7f;i = static_cast(f);此时结果,i的值为166。2、C++中的reinterpret_cast主要是将数据从一种类型的转换为另一种类型。所谓“通常为操作数的位模式提供较低层的重新解释”也就是说将数据以二进制存在形式的重新解释。比如:int i;char *p = "This is a example.";i = reinterpret_cast(p);此时结果,i与p的值是完全相同的。reinte 阅读全文
posted @ 2013-07-03 15:49 Air Support 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composi 阅读全文
posted @ 2013-07-03 15:08 Air Support 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 函数模板可以用来创建一个通用的函数,以支持多种不同形参,避免重载函数的函数体重复设计。它的最大的特点就是吧函数实用的数据类型作为参数。定义的一般形式:template 函数返回值类型 函数名(参数表){ 函数体 }例如:templat T1 fun(T1 a,T2 b){ T2=d;、、、、、、}如果主调函数中有:int x; double y;、、、、fun(x,y);则系统将用实参x的数据类型int和y的数据类型double的代替函数模板中的T1和T2,生成模板函数int fun(int a,double b){ double d;、、、、}# include # include temp 阅读全文
posted @ 2013-07-02 23:40 Air Support 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 抽空总结下对一直以来对C++多态性的一点个人理解:1.什么叫早绑定和晚绑定?早绑定指在对象声明的时候就和它的类型建立了关联。晚绑定是指代码在运行时再检查对象是否提供了我们所需要的方法和属性。静态关联(早绑定)和动态关联(晚绑定)。2.什么叫多态性?一个接口,多种方法。3.多态性和非多态性的区别?多态与非多态的实质区别就是函数地址是早绑定还是晚绑定。如果函数的调用,在编译器编译期间就可以确定函数的调用地址,并产生代码,是静态的,就是说地址是早绑定的。而如果函数调用的地址需要在运行时才确定,这就属于晚绑定。4.一个不带虚函数的类(无成员变量)大小?空类大小不为0,为1。5.一个带虚函数的类(无成员 阅读全文
posted @ 2013-07-02 22:48 Air Support 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-06-30 14:20 Air Support 阅读(343) 评论(0) 推荐(0) 编辑