![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C&C++
ProgramRookie
go go go
展开
-
如何实现一个带引用记数的智能指针模板
RAII( resource acquisition is initialization ),所谓初始化即资源获取,它认为一个资源应该利用对象管理设施来管理,也就是说,你需要一个资源,你用一个对象的构造函数来获得它,用析构函数来释放它. 智能指针技术,是这一思想的完美体现,它即可以像内建指针(即你new得的对象地址指针)那样操纵对象,又可以跟踪与控制资源的生命期. 为智能指针添加引用原创 2009-05-21 18:42:00 · 1164 阅读 · 0 评论 -
[转载] c语言中的结构(struct)和联合(union)简介
联 合(union) 1. 联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量。 联合说明和联合变量定义与结构十分相似。其形式为: union 联合名{ 数据类型 成员名; 数据类型 成员名; ... } 联合变原创 2009-04-23 18:46:00 · 842 阅读 · 0 评论 -
对象池与new重载
string *title = new String( "Kicks" ); 一句再熟悉不过的语句,但是,这句话却包含了两个阶段,第一个阶段,分配存储,第二个阶段是初始化String对象. 首先,我们假设没有对operator new进行重载,而是调用全局的operator new,先来看看它的可能的形式(我根据自己对operator new重载的使用写的函数): v原创 2009-03-27 10:44:00 · 905 阅读 · 0 评论 -
C语言中rand()函数的用法
函数rand所产生的随机数实际上是伪随机数,即反复调用函数rand所产生的一系列数似乎是随机的,但每次执行程序所产生的序列则是重复的。要产生真正的随机数序列,必须在每一次运行前为rand函数提供不同的种子,这是由srand函数提供的。 所以加上srand(time(NULL))就可以产生真正的随机数了。 #include #include #include #incl原创 2008-09-06 00:25:00 · 4319 阅读 · 0 评论 -
编译器与默认构造函数
C++新手一般有两个常见的误解: a. 任何一个class如果没有定义default constructor,就会被合成一个出来 b. 编译器合成出来的default constructor会明确设定class内每一个data member的默认值。 对于问题1,C++ Standard规定: 对于class X, 如果没有任何user-declared co原创 2012-01-10 16:54:35 · 535 阅读 · 0 评论