自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(16)
  • 收藏
  • 关注

转载 explicit关键字

<br />c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?<br /><br />如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class MyClass<br />{<br />public:<br />MyClass( int num );<br />}<br />....<br />MyClass obj = 1

2010-10-27 16:54:00 426

转载 new/delete和malloc/free的区别-zz

1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。4、new 和 malloc效率比较new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的都是void

2010-10-25 20:09:00 1199

转载 C++中Static作用和使用方法-zz

<br />1、什么是static?<br />       static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。<br />    2、为什么要引入static?<br />       函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一 个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破

2010-10-19 09:41:00 650

转载 堆、栈、自由存储区、全局/静态存储区和常量存储区-zz

<br />在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 <br />栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 <br />堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。 <br />自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过

2010-10-19 09:34:00 576

转载 C++和Java比较-zz

对比C++和Java “作为一名C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的。事实上,Java本来就是从C++衍生出来的。” 然而,C++和Java之间仍存在一些显著的差异。可以这样说,这些差异代表着技术的极大进步。一旦我们弄清楚了这些差异,就会理解为什么说Java是一种优秀的程序设计语言。本附录将引导大家认识用于区分Java和C++的一些重要特征。 (1) 最大的障碍在于速度:解释过的Java要比

2010-10-19 09:19:00 578

转载 c++虚函数表探究-zz

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 当然,相

2010-10-18 11:28:00 496

转载 函数中分配内存的问题-zz

<br />如果想要在在C++的函数中分配内存,那么就只得使用指针的引用传递,或是二级指针。<br /> <br />void MyNew(int** p)<br />{<br />    *p = new int;<br />}<br />void MyNew(int*& p)<br />{<br />    p = new int;<br />}<br /> <br />而通常我们在开始的学习中,都会写成 <br />void MyNew(int* p)<br />{<br />   p = new i

2010-10-18 10:31:00 600

原创 构造函数和变量初始化顺序

<br />class A<br />{ <br />public: <br />    A(){ cout<<"A()"<<endl;} <br />    ~A(){ cout<<"~A()"<<endl;} <br />}; <br />class B <br />{ <br /> <br />public: <br />    B(){ cout<<"B()"<<endl; } <br />    ~B(){ cout<<"~B()"<<endl; } <br /> <br />private: <

2010-10-17 11:48:00 1518

转载 C 语言的谜题

<br />1、下面的程序并不见得会输出 hello-std-out,你知道为什么吗?<br />#include<br />#include<br />int main()<br />{<br />while(1)<br />{<br />fprintf(stdout,"hello-std-out");<br />fprintf(stderr,"hello-std-err");<br />sleep(1);<br />}<br />return 0;<br />}<br />参考答案:stdout和std

2010-10-15 14:48:00 464

原创 浅谈 c和c++ class和struct

<br />C和C++中结构体的区别:<br />C中的struct是没有权限设置的。 <br />C++中struct增加了访问权限,且可以和类一样有成员函数。<br /> <br />C++中类和结构体的区别:<br />C++中的struct等同于class,只是class默认成员权限是private,而struct默认成员权限是public。且class的默认继承为私有继承,struct的默认继承为公有继承。<br />ps:不过大家一般都习惯使用类,可以说,在C++中,结构是特殊的类。

2010-10-14 19:16:00 722

转载 RTPSession翻译

<br />RTPSession<br />      对于大多数的RTP应用程序,RTPSession类可能是JRTPLIB唯一使用的类。它能完全处理RTCP部份的数据包,所以用户可以把精力集中在真正的数据收发。<br />      要知道RTPSession类在多线程下并不是安全的,因此,用户要通过某些锁同步机制来保证不会出现在不同线程当中调用同一个RTPSession实例。<br />      RTPSession类有如下的接口。<br /><br />      • RTPSession(RTP

2010-10-13 11:33:00 965

转载 P2P之UDP穿透NAT的原理与实现(附源代码)

<br />P2P 之 UDP穿透NAT的原理与实现(附源代码)<br />原创:shootingstars<br />参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt<br />论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。<br />首先先介绍一些基本概念:<br />    NAT(Network Address Tra

2010-10-13 11:29:00 1831

转载 vi/vim搭建超级c/c++编程环境

<br /> 在没有怎么太深的接触vi/vim之前,也曾经搞不懂为什么有好多linux下的程序员说vi/vim是个超级的代码编辑器或者编译器,也有不少的(我认为是刚在linux编程不久的人)说,“。。头让门挤啦,有那么多功能强大的linux环境下的IDE不用,竟然就用个简单的vi/vim,不用说界面类似DOS,连编译都要用命令。。”。。等等类似的评价吧。<br />      我开始也不懂它到底哪强大,但我仍坚持使用vim可以说是据以两点原因:<br />      1、既然有那么多的前辈说

2010-10-12 14:32:00 9125

转载 C++中虚析构函数的作用

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

2010-10-11 15:10:00 627

转载 Const,Const函数,Const变量,函数后面的Const

<br />看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。<br />const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。<br />1.用con

2010-10-11 10:48:00 375

转载 C++中extern “C”含义深层探索

1.引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。2.从标准头文件说起某企业曾经给出如下的一道面试题:面试题:为什么标准头文件都有类似以下的结构? #ifndef _

2010-10-11 10:41:00 366

空空如也

空空如也

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

TA关注的人

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