随笔分类 - c++学习笔记
摘要:const引用的作用: 1. 避免不必要的复制。 2. 限制不能修改对象。 const 引用的是对象时只能访问该对象的const 函数 例:
阅读全文
摘要:一、函数模板模板定义以关键字template开始,后跟一个模板参数列表,在模板定义中,模板参数列表不能为空。模板类型参数:类型参数前必须使用class或typename关键字。非类型模板参数:表示一个值而不是一个类型数组引用形参://&arr两端的括号必不可少void print(int(&arr)...
阅读全文
摘要:转自:http://blog.csdn.net/hackbuteer1/article/details/7460019 单例模式其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。 《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量
阅读全文
摘要:1.C语言异常处理 1.1 异常终止 标准C库提供了abort()和exit()两个函数,它们可以强行终止程序的运行,其声明处于<stdlib.h>头文件中。这两个函数本身不能检测异常,但在C程序发生异常后经常使用这两个函数使程序终止。下面的这个例子描述了exit()的行为: #include <s
阅读全文
摘要:http://cppblog.com/SmartPtr/archive/2007/07/04/27496.html (1) 类模板定义一个栈的类模板,它可以用来容纳不同的数据类型 类模板的使用除了要在声明时指明模板参数外,其余均与普通的类相同,例如: (2) 函数模板假设现在要定义一个max函数来返
阅读全文
摘要:如何声明一个重载的操作符? A: 操作符重载实现为类成员函数 重载的操作符在类体中被声明,声明方式如同普通成员函数一样,只不过他的名字包含关键字operator,以及紧跟其后的一个c++预定义的操作符。 可以用如下的方式来声明一个预定义的==操作符: 实现方式如下: 调用方式如下: 这里,因为ope
阅读全文
摘要:当operator new申请一个内存失败的时候,它会进行如下的处理步骤: 1、如果存在客户指定的处理函数,则调用处理函数(new_handler),如果不存在则抛出一个异常。 2、继续申请内存分配请求。 3、判断申请内存是否成功,如果成功则返回内存指针,如果失败转向处理步骤1为了自定义这个“用以处...
阅读全文
摘要:函数指针是指向函数的指针变量,即本质是一个指针变量。 int (*f) (int x); /*声明一个函数指针*/ f=func; /*将func函数的首地址赋给指针f */指向函数的指针包含了函数的地址,可以通过它来调用函数。声明格式如下:类型说明符(*函数名)(参数)其实这里不能称为函数名,应该...
阅读全文
摘要:转自:http://www.cnblogs.com/sooner/p/3256559.html 字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前
阅读全文
摘要:1 关于多态,面向对象的几个要点作为面向对象的程序员,这个问题是必须要弄清楚的,网上、教科书上都是标准答案,关键是理解内涵哦。2 关于虚函数表和RTTI 这个Inside C++ Object Model讲的相当明确虚函数表的第一项就是关于RTTI的,RTTI就是Run Time Type Iden...
阅读全文
摘要:http://blog.csdn.net/sibylle/article/details/2026915一直以为inta[256]={0};是把a的所有元素初始化为0,inta[256]={1};是把a所有的元素初始化为1.调试的时查看内存发现不是那么一回事.5.2.1数组初始化数组可以用一个列值来...
阅读全文
摘要:1.C++11中已经有了final关键字:它的作用是指定类的虚函数不能被该类的继承类覆盖(override),或者是指定一个类成为一个不能被继承的类(final class)2.派生类用调用基类的构造函数来初始化基类部分,若将基类构造函数声明为private,则实例化派生类成员时链接出错,但是这样基...
阅读全文
摘要:http://blog.csdn.net/solstice/article/details/8547547
阅读全文
摘要:因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据。当要求使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。精确地说就是,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而
阅读全文
摘要:http://www.cnblogs.com/chio/archive/2007/09/17/895263.html c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式(调用)的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类的构造函数有
阅读全文
摘要:http://www.cnblogs.com/chio/archive/2007/10/23/934335.htmlhttp://blog.csdn.net/szchtx/article/details/12000867在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如...
阅读全文
摘要:http://www.cnblogs.com/chio/archive/2007/06/11/778934.htmlsizeof不是函数,更像一个特殊的宏,它是在编译阶段求值得。sizeof作用范围内即()里面的内容是被替换成类型int a = 0;cout << sizeof(1 == 2) <<...
阅读全文
摘要:C++类型转换分为:隐式类型转换和显式类型转换 一、隐式类型转换 1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 2)一种类型表达式赋值给另一种类型的对象:目标类型是被赋值对象的类型 例外:void指针赋值给其他指定类型
阅读全文
摘要:http://www.cnblogs.com/heyonggang/archive/2012/12/11/2812304.html
阅读全文
摘要:1. 初始化 != 赋值.a.初始化代表为变量分配内存. 变量在其定义处被编译器初始化(编译时). 在函数中, 函数参数初始化发生在函数调用时(运行时).b.赋值代表"擦除对象当前值, 赋予新值". 它不承担为对象分配内存的义务.2. C++中, 类成员的初始化于初始化列表中完成, 先于构造函数体执...
阅读全文

浙公网安备 33010602011771号