条款47模板局部特化
不能对函数模板进行局部特化,所能做的即使重载它们。
但可以对类模板进行局部特化。
template class Heap; //主模板
template classHeap{…}; //局部特化
局部特化的语法类似完全特化,但是他的模板参数列表是非空的。当使用任何(未经修饰的)指针类型来实例化一个Heap时,这个局部特化版将优先于主模板而被采用。进一步而言...
分类:
编程语言 时间:
2014-06-07 01:46:57
阅读次数:
248
1.在一般情况下,指向一种类型对象的指针不允许指向另一种类型的对象,然而指向基类对象的指针可以指向该基类的共有派生类对象(反过来不成立),这是运行时,多态的基础。指向基类队象的指针指向派生类对象后,可以访问派生类中有基类继承下来的成员,但不能访问那些派生类对象自己增加的成员。
2.一个含有虚函数的类称为多态类。
3.虚函数就是在一个类中用virtual定义的成员函数。基类的虚函数在派生类中仍是...
分类:
编程语言 时间:
2014-06-07 01:27:01
阅读次数:
236
条款14:在资源管理类中小心coping行为
在前一个条款,我们提出了RAII(资源获得即是初始化)技术,通过“对象管理资源”达到防止资源泄露,对于通过堆分配的内存,可以借助指针指针实现,但系统中有很多资源不是堆分配:文件句柄,锁,网络套接字。这些资源就需要自己实现对象来管理。...
分类:
其他好文 时间:
2014-06-05 10:48:28
阅读次数:
210
作者:刘昊昱
博客:http://blog.csdn.net/liuhaoyutz
Android版本:4.4.2
在C++语言中,指针操作是最容易问题的地方,常见的指针操作错误有以下几种:
1、 定义一个指针,但没有对其进行初始化。这种情况下,指针会指向一个随机地址,此时使用该指针,将出现不可预知的错误。一般定义一个指针时,应该同时对该指针进行初始化。
2、 ...
分类:
移动开发 时间:
2014-06-05 07:50:51
阅读次数:
461
点击打开链接 点击打开链接 ASP.Net+Unity开发、点击打开链接 .Net培训、期待与您交流!">点击打开链接 点击打开链接
黑马程序员学习笔记-C指针
1、
指针简介:
指针是C语言中非常重要的数据类型,是C语言的精华
2、 指针变量定义:
格式:类名标识符 *指针变量名;
指针变量只能存储地址
指针就一个作用:能够根据一个地址值,访问对应的存储空间
指针变量p前面的...
分类:
其他好文 时间:
2014-06-05 07:09:36
阅读次数:
324
1.脑图
2.表示方法
按照数据结构概述所说,线性表有两种表示方法分别是顺序表示和链式表示,链表就是链式表示的典型。
我们知道链式表示是分配了n块内存空间,可以认为彼此不连续,所以不能用偏移量去定位每个元素。
下面就先说最简单的单向链表:
如果每个数据元素能有一个指针指向下一个元素的话,那么只需要知道第一个数据元素就能一个一个的遍历整个链表了,这就是单向链表。...
分类:
其他好文 时间:
2014-06-05 06:59:17
阅读次数:
300
1 设计一个基类
2 继承这个基类,并包含这个基类的一个对象
3 创建继承类的时候,初始化这个基类,因为是基类指针,所以可以是所有基类的衍生类对象,那么就可以叠加任意多个衍生类对象了。
关键是在衍生类中包含一个基类对象,然后有了继承和包含两重关系,可以使得一个类一个类对象叠加,达到装饰目的。
等于是创建了一个对象指针链表,一个一个对象发挥其相应的作用。
下面程序装饰一个桌...
分类:
其他好文 时间:
2014-06-05 06:15:17
阅读次数:
278
用于大型程序的工具--异常处理[续2]八、自动资源释放 考虑下面函数:void f()
{
vector v;
string s;
while (cin >> s)
{
v.push_back(s);
}
string *p = new string[v.size()];
//...
delete p;
}
在正...
分类:
编程语言 时间:
2014-06-05 06:07:27
阅读次数:
393
本题应该挺经典的,因为可以使用好多方法过,适合训练多种高级数据结构和算法。
这里使用AVL平衡二叉树的解法,时间还可以,大概300ms吧,内存很省188k,因为这里使用指针,没有浪费内存。
这里使用Geeks上面的AVL的做法,使用递归更新树,而不使用双亲指针,试了下使用双亲指针,真的好麻烦,要维护多一个指针,容易出错很多。
递归操作二叉树是非常优雅的。
而且不需要使用任何STL容器,非常...
分类:
其他好文 时间:
2014-06-05 01:56:58
阅读次数:
269