Test Header HTML Code

随笔分类 -  C&C++

C++零碎笔记二
摘要:这些都是06年时候在学校的时候写的,当时放在CSDN的blog上面,现整理一下搬过来。 1,赋值兼容性原则 一个公有派生类的对象在使用上可以被当作基类的对象,反之则禁止。具体表现在:派生类的对象可以被赋值给基类对象。 派生类的对象可以初始化基类的引用。 指向基类的指针也可以指向派生类。 2,静态联编与动态联编 静态联编与动态联编联编: 程序自身彼此关联的过程,确定程序中的操作调用与执行该操作的... 阅读全文

posted @ 2010-04-07 13:52 宁静的水泡 阅读(288) 评论(0) 推荐(0) 编辑

C++零碎笔记一
摘要:这些都是06年时候在学校的时候写的,当时放在CSDN的blog上面,现整理一下搬过来。 1,关于static 类static数据成员是全局变量,但其作用范围是类范围,static成员只在文件范围类初始化依次,即使类没有一个对象,static成员也是存在的。如果允许的话,static成员可以被任何对象访问,也可以用二元作用域运算符通过对象访问。 在C++中,当对类对象使用static时,将使所有的... 阅读全文

posted @ 2010-04-07 13:42 宁静的水泡 阅读(281) 评论(0) 推荐(0) 编辑

尝试改进std::vector提高性能
摘要:在顺序读取文件缓存大量数据时候,STL标准库中的std::vector类模板,由于其内存扩展方式,往往当容量不足时,需要先申请两倍于目前的空间,然后将现在的数据拷贝过去,这样速度很慢。在这里我写了一个小类模板tvector,用数据块来进行扩展,类在初始化的时候,用户指定初始化大小,以及每次增长的容量大小。代码 阅读全文

posted @ 2010-04-06 17:56 宁静的水泡 阅读(1732) 评论(4) 推荐(0) 编辑

C++头文件中为何添加了#ifndef #define #endif还会出现变量重复定义的问题
摘要:我们都知道为了避免头文件被#include多次,我们通常会在头文件上加上上述机制,比如 temp.h #ifndef _TEMP_H #define _TEMP_H …… #endif 这样在同一个编译单元(Compilation Unit)中该头文件只会被包含一次。 但是这样是否就万无一失了呢? 有一次,一朋友问我为何他的程序中还会出现变量重复定义的错误 我看了一下他的代码,大概一个头文件类似... 阅读全文

posted @ 2010-04-04 16:03 宁静的水泡 阅读(4889) 评论(0) 推荐(0) 编辑

由C++的异常处理联想到RAII
摘要:在传统的C语言,我们通过检查函数的返回值以判断调用是否成功,并处理各类异常情况,在Unix环境下可以通过设置error变量发出错误消息,并通过setjmp, longjmp来跳出深层次调用。C++语言在此基础上引入了Exception机制,遇到异常的程序模块可以throw一个异常,其他方法可以通过try catch来捕捉该异常。但是相比后来的Java与C#中的异常处理机制,C++的还是有不少待完善... 阅读全文

posted @ 2010-04-04 15:45 宁静的水泡 阅读(623) 评论(0) 推荐(0) 编辑

关于C++模板的几点小结
摘要:我一直认为模板是C++语言的精髓,为我们提供了无比强大的泛型编程功能。 数据类型级别的代码复用,使用模板为不同的数据类型提供相关类和函数实现。这种复用是在编译阶段的复用,编译器对模板进行实例化,自动生成若干相应的类和函数,避免重复编码。 Java和C#中的对象基本上都是引用类型(引用其实相当于一种特殊的指针,其内存大小等特征是一定的),并且都继承一个object基类,设计的类和算法很容易操纵所有... 阅读全文

posted @ 2010-03-28 15:04 宁静的水泡 阅读(1408) 评论(0) 推荐(0) 编辑

关于Singleton模式中的Double Check机制
摘要:在多线程环境下,使用Singleton模式很重要的一点就是要保证用Double Check机制保证线程安全。 很多时候, 我们通常需要使用singleton模式来保证对象实例的唯一性。通常我们是这么写的: class Singleton{private: static Singleton *instance;public: static Singleton* getInstance();priv... 阅读全文

posted @ 2010-03-27 22:24 宁静的水泡 阅读(1243) 评论(1) 推荐(1) 编辑

导航

Test Rooter HTML Code