- 博客(6)
- 收藏
- 关注
原创 Effective C++笔记第一部分:让自己习惯C++
1、define和const的区别 (1)、define是预处理命令,是在预处理阶段展开,而const是在编译阶段。 (2)、无法用define创建一个类的专属长廊,因为define并不重视作用域,一旦宏被定义,它就在其后的编译过程中有效,除非在某处被undef,即define不能提供任何封装性。 (3)、类中的常量可以用static const i
2015-05-13 19:08:18 437
转载 用C++实现一个不能被继承的类
在C++中,子类的构造函数会自动调用父类的构造函数子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继承的时候,必然会由于试图调用构造函数、析构函数而导致编译错误。可是这个类的构造函数和析构函数都是私有函数了,我们怎样才能得到该类的实例呢?这难不倒我们,我们可以通过定义静态来创建和释放类的实例
2015-05-06 11:32:44 572
原创 四种常用的类型转换
(1)static_cast(exdivssion)该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据
2015-05-06 11:27:43 1129
转载 浅议 Dynamic_cast 和 RTTI与虚函数表的关系
浅议 Dynamic_cast 和 RTTI写这篇博文的目的是,记录学习过程。对于问题要较真,在解决这个问题中会学到很多,远远超过自己期望,锻炼思维,享受这个过程。问题: Static_cast 与 Dynamic_cast的区别来自书本上的解释: 用 static_cast ( expression ) 1. static_cast(expression) The
2015-05-06 10:10:33 2973
原创 C++中new和delete
New运算符1、new表达式:当我们使用一条new表达式时:string *sp=newstring(“a value”);string *arr=newstring[10];实际上执行了三步操作。第一步,new表达式调用一个名为operatornew(或者operatornew[])的标准库函数。改函数分配一块足够大的、原始的、未命名的内存空间以便存储特定类型的对象(或者对象
2015-05-04 22:52:33 622 1
原创 全排列的编码与解码(康拓展开)
一、康托展开:全排列到一个自然数的双射 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! ai为整数,并且0 适用范围:没有重复元素的全排列 二、全排列的编码: {1,2,3,4,...,n}的排列总共有n!种,将它们从小到大排序,怎样知道其中一种排
2015-05-04 16:01:43 666
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人