C++基础
文章平均质量分 65
wileyking
擅长C/C音视频行业
展开
-
智能指针
Solmyr 的小品文系列之五:垃圾收集 转自pchome <br />午餐时间。 <br /><br />zero 坐在餐桌前,机械的重复“夹菜 -> 咀嚼 -> 吞咽”的动作序列,脸上用无形的大字写着:我心不在焉。在他的对面坐着 Solmyr ,慢条斯理的吃着他那份午餐,维持着他一贯很有修养的形象 ——— 或者按照 zero 这些熟悉他本质的人的说法:假象。 <br /><br />“怎么了 zero ?胃口不好么?”,基本填饱肚子之后,Solmyr 觉得似乎应该关心一下他的学徒了。 <br /><br转载 2011-05-13 16:51:00 · 563 阅读 · 0 评论 -
浅拷贝和深拷贝:有什么区别
浅拷贝就是成员数据之间的一一赋值:把值赋给一一赋给要拷贝的值。但是可能会有这样的情况:对象还包含资源,这里的资源可以值堆资源,或者一个文件。。当值拷贝的时候,两个对象就有用共同的资源,同时对资源可以访问,这样就会出问题。深拷贝就是用来解决这样的问题的,它把资源也赋值一次,使对象拥有不同的资源,但资源的内容是一样的。对于堆资源来说,就是在开辟一片堆内存,把原来的内容拷贝。 如果你拷贝的对象中引用了某个外部的内容(比如分配在堆上的数据),那么在拷贝这个对象的时候,让新旧两个对象指向同一个外部的内容原创 2011-03-29 09:52:00 · 1043 阅读 · 0 评论 -
十六进制字符串(CString或char[]) 和 BYTE,char数组 相互转化
例如: CString sztmp = "40 40 50 65 "; BYTE char[3]; //如何把如上的sztmp 每两位为一个十六进制数放到 下面的char数据中 char[0] = 0x40; char[1] = 0x40; char[2] = 0x50; char[3] = 0x65; 方法:一:char[4]里面是16进制的数, 放到CString,char[100]数组中比较容原创 2011-05-18 14:24:00 · 6174 阅读 · 1 评论 -
htons(), ntohl(), ntohs(),htons() 函数
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数: htonl()--"Host to Network Long" ntohl()--"Network to Host Long" htons()转载 2012-06-14 16:42:11 · 758 阅读 · 0 评论 -
【友元】friend的用法
友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。(1)友元函数 友元函数的特点是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。下面举一例子说明友元函数的应用。 #include class Point { public: Point(转载 2013-01-29 15:42:55 · 830 阅读 · 0 评论 -
结构体中Char a[0]用法——柔性数组
有如下定义:typedef struct{ char a; char b[0]; }; 其中元素Char b[0];叫做柔性数组,主要用于使结构体包含可变长字段。详细内容如下:柔性数组; 【柔性数组结构成员 C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小原创 2014-02-08 17:25:36 · 1492 阅读 · 0 评论 -
设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。转载 2014-02-10 11:37:59 · 965 阅读 · 0 评论 -
工厂方法模式
8.1 女娲造人的故事 东汉《风俗通》记录了一则神话故事:“开天辟辟,未有人民,女娲搏,黄土作人……”,讲述的内容就是大家非常熟悉的女娲造人的故事。开天辟地之初,大地上并没有生物,只有苍茫大地,纯粹而洁净的自然环境,寂静而又寂寞,于是女娲决定创造一个新物种(即人类)来增加世界的繁荣,怎么制造呢? 别忘了女娲是神仙,没有办不到的事情,造人的过程是这样的:首先,女娲转载 2014-02-10 13:00:29 · 1534 阅读 · 0 评论 -
类前置声明和头文件包含
类的前置声明(forward declaration)和包含头文件(#include)的区别常常会迷惑我们,特别是涉及两个类相互包含的时候。因此我们有必要搞清楚二者的区别以及二者的适用场合。 首先我们需要问一个问题是:为什么两个类不能互相包含头文件?所谓互相包含头文件,我举一个例子:图层类CLayer和符号类CSymbol,它们的大致关系是图层里包含有符号,符号里定义一个相关图层指针,具原创 2014-03-18 19:18:03 · 1348 阅读 · 0 评论