c/c++基础
文章平均质量分 72
rw-just-go-forward
这个作者很懒,什么都没留下…
展开
-
二叉查找树的简单模板实现
二叉排序树又称二叉查找树,是一种的高效的查找数据结构,查找效率等同二分法。 以下是二叉查找树的一种简单模板实现: #include using namespace std;template class BinSearchTree{public: typedef Node* tree; BinSearchTree():rp(NULL), n(){} ~B原创 2012-06-24 15:39:51 · 1223 阅读 · 0 评论 -
c++输出缓冲区刷新
在c++中,io操作都是有io对象来实现的,每个io对象又管理一个缓冲区,用于存储程序读写的数据。只有缓冲区被刷新的时候缓冲区中的内容才会写入真实的文件或输出设备上。那么,什么情况下会刷新输出缓冲区呢,有如下五种情况:1.程序正常结束。作为main返回工作的一部分,将清空所有的输出缓冲区。2.在一些不确定的时候,缓冲区可能已经满了,在这种情况下,缓冲区将会在写下一个值之前刷新。原创 2012-06-29 09:46:21 · 5907 阅读 · 0 评论 -
c++预处理器定义的四个有用的常量
预处理器为我们定义了四个有用的常量,使用这四个常量可以在错误消息中提供更多的信息,他们分别是:__FILE__ 文件名__LINE__ 当前行号__TIME__ 文件被编译的时间__DATE__ 文件被编译的日期例如,我们可以使用如下小例子看看这几个常量的用法,功能是判断输入的单词是否小于定义的最小长度,如小于则输出错误信息,代码如下:#include #inclu原创 2012-06-29 10:19:19 · 2729 阅读 · 0 评论 -
细说C++类型转换操作符
C++语言虽然兼容C,也支持C语言的类型转换用法,就是将类型用圆括号括起来,这种转换可视性比较差,难以跟踪错误的转换。C++提供了命名的强制转换操作符,毕竟转换有时是不安全的,所以使用命名转换操作符可以根据所使用的转换操作符可以判断风险级别。下面我们就来看看C++提供的四种命名的强制转换操作符的具体功能和用法。1.const_cast2.static_cast3.reinterpr原创 2012-06-30 07:52:27 · 1608 阅读 · 1 评论 -
C++中何时调用复制构造函数
在C++中,只有单个形参,而且该类型是对本类类型的引用(常用const修饰),这样的构造函数称为复制构造函数。复制构造函数既可以自己定义又可以像默认构造函数一样被编译器隐式调用。但大多数时候,特别是类中有指针成员的时候要实现深复制,避免浅复制时,就需要自己定义复制构造函数。那么我们定义的复制构造函数什么时候调用呢,总结起来,有如下五种情况,下面分别举例说明。一、根据一个同类型对象显示或原创 2012-07-01 09:47:49 · 4161 阅读 · 6 评论 -
c/c++常见面试题
1. C中static有什么作用(1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。(2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static转载 2012-10-02 08:28:43 · 10837 阅读 · 3 评论 -
条款01:视c++为一个语言联邦
《Effective C++》,久闻大名,幸得一见,都说c++程序员分两类,看过EffectiveC++的和没看过的,可见对此书评价之高,很少人能出其右。身为菜鸟,先看一遍,记记笔记,留着以后水平提高后回来批斗自己。都说C++是难学易用的语言,难学是因为她具有多种编程范式,既能进行过程化编程(procedural),也能进行面向对象编程(object-oriented),也支持泛型编程原创 2012-06-07 23:18:30 · 1347 阅读 · 0 评论