- 博客(15)
- 资源 (12)
- 收藏
- 关注
转载 C和C++中static成员的特点
C语言中static的变量:1).static局部变量 a、静态局部变量在函数内定义,生存期为整个程序运行期间,但作用域与自动变量相同,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,但不能使用它。 b、对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。2).static全局变量
2015-01-30 16:38:07 699
转载 C++当中构造函数前面添加explicit关键字的作用
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有
2015-01-30 16:31:15 1459
转载 fgets和fputs的用法
C/C++编程中当要读写一些简单的文本文件时,可以使用fgets和fputs函数来操作相关的文件。fgets是从文件中获取字符串,而fputs则是将字符串写入到文件中。需要注意的是fgets和fputs只能操作简单的以字符串txt的文件,其它文件操作并不适合使用。详细fgets和fputs函数的具体形式:char * fgets( cha
2015-01-26 17:43:44 3391
转载 C++的异常处理
异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制。也许我们已经使用过异常,但是你会是一种习惯吗,不要老是想着当我打开一个文件的时候才用异常判断一下,我知道对你来说你喜欢用return value或者是print error message来做,你想过这样做会导致Memory Leak,系统退出,代码重复/难读,垃圾一堆…..吗?现在的软件已经是n*365*24小时的
2015-01-23 10:33:38 513
转载 try throw catch 的实现原理
本人节选自《21天学通C++》一书 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用throw语句来实现,如果检测到产生异常,则抛出异常。该语句的格式为:throw 表达式; 如果在try语句块的程序段中(包括在其中调用的函数)发现了异常,且抛弃了该异常,则这个异常就可以被try语句块后的某个catch语句所捕获并处理,捕获和处理的条件是被抛弃的异常的类型与
2015-01-23 10:05:12 1712
转载 关于Vector作为函数的返回值
关于Vector作为函数的返回值,有几点需要说明: 1.首先如果Vector是一个局部的变量,那么返回该Vector的引用是十分危险的,因为在Vector超出作用域的,会自动调用相关的析构函数(~Vector()),如果Vector中存放的是类(ClassName)对象的指针,则不会调用相关的类ClassName析构函数,只会把相关的空间清空(也就是Vector.size()=0),这样
2015-01-19 15:25:53 19291
转载 仿函数
仿函数,又叫做函数对象,是一个重载了"()"运算符的struct,是STL(标准模板库)六大组件(容器、配置器、迭代器、算法、配接器、仿函数)之一;仿函数虽然小,但却极大的拓展了算法的功能,几乎所有的算法都有仿函数版本。例如,查找算法find_if就是对find算法的扩展,标准的查找是两个元素向等就找到了,但是什么是相等在不同情况下却需要不同的定义,如地址相等,地址和邮编都相等,虽然这些相等的定义
2015-01-12 13:35:03 660
转载 STL基础知识
一、基础知识1、泛型技术泛型技术的实现方法有多种,比如模板,多态等。模板是编译时决定,多态是运行时决定,其他的比如RTTI也是运行时确定。多态是依靠虚表在运行时查表实现的。比如一个类拥有虚方法,那么这个类的实例的内存起始地址就是虚表地址,可以把内存起始地址强制转换成int*,取得虚表,然后(int*)*(int*)取得虚表里的第一个函数的内存地址,然后强制转换成函数类型,即可调用来验证虚表
2015-01-12 11:01:40 593
转载 C++中的异常类
C++有很多的标准异常类:namespace std{ //exception派生 class logic_error; //逻辑错误,在程序运行前可以检测出来 //logic_error派生 class domain_error; //违反了前置条件 class invalid_argument; //指出函数的一个无效参数
2015-01-09 12:03:07 486
转载 UML图解二
网上关于此类的讨论非常多,发现对于该问题的理解各有各的说法,而各个说法中又相去甚远。通过浏览这些讨论以及对《O'Reilly - UML 2.0 In A Nutshell (2007)》的参考,发表一下自己的看法类间关系有很多种,在大的类别上可以分为两种:纵向关系、横向关系。纵向关系就是继承关系,它的概念非常明确,也成为OO的三个重要特征之一,这里不过多的讨论。横向关系较
2015-01-09 10:47:27 423
转载 UML中主要的六个关系
UML中定义的关系主要有6种: 依赖、关联、聚合、组合/合成、泛化、实现;1、依赖关系: 含义:是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系; 体现:在Java和C++中体现为局部变量、方法/函数的参数或者是对静态方法的调用; 方向:单向; 图示:虚线 + 箭头; 举例:人依赖于水和空气;汽车
2015-01-09 10:46:33 486
转载 大话UML图
大话设计模式上的一个图,我用EA画出来的: UML中的6大关系相关英文及音标: 依赖关系 dependency [di'pendənsi] 关联关系 association [ə,səuʃi'eiʃən] 聚合关系 aggregati
2015-01-09 10:45:49 433
转载 UML基础详解
Longronglin之UML: 因为上面写了个设计模式而没有UML所以贴了上来。这些都是我2004年上半年无聊的时候整理的。望对大家有用统一建模语言(UML:Unified Modeling Language)1. 能够从不同的角度来看待系统的结构,行为,功能(需求)。2. 能够在不同抽象程度上考虑系统,而仅仅是源代码是不够的。源代码是非常细化的内部结构,不能用来
2015-01-09 10:44:03 564
转载 单例模式的七种不同的实现
第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == nu
2015-01-08 13:57:57 481
转载 C++的iostream标准库介绍+使用详解
0 为什么需要iostream我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的 stdio库不同,它从一开始就是用多重继承与虚拟继承实现的面向对象的层次结构,作为一个c++的标准库组件提供给程序员使用。 iostream为内置类型对象提供了输入输出支持,同时也支持文件的输入输出,类的设计者可以通过对io
2015-01-07 14:14:54 1105
PaintCode for Mac 破解版 Version 2.1 (21005)
2015-11-20
Win7资源管理器背景设置 shellstyle
2014-08-15
VS2010 相同单词高亮显示 插件
2014-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人