随笔 - 156  文章 - 0  评论 - 35  阅读 - 72万 
01 2013 档案
word格式符号
摘要:在Word中有很多的格式设置,很多格式设置都会有一些标记,这些标记是隐藏的,在打印文档时是不会打印出来的,但是它们却起着结构化文档的大作用。如果你在编辑文档,不妨点击格式标记开关,看看都有哪些格式标记,如下图。在常用工具栏上有个按钮,用来开启和关闭显示文档中的隐藏格式标记,你不妨点击它,开启显示,看看那些默默无闻地在背后工作的人们。或许你会讨厌他们,觉得他们丑恶,但是,他们是Word中不可缺少的,是一份漂亮的文档排版说必须的。下图为Word中常见的隐藏格式标记符号。1是按Tab键出现的结果,我们称之为制表符,这玩意被很多人忽视了,有什么用不在这里讨论,但是,如果你要空格的效果,最好按Tab键, 阅读全文
posted @ 2013-01-23 16:49 Yogurshine 阅读(2416) 评论(0) 推荐(0) 编辑
按列存储的二维数组模版
摘要:C/C++的多维数组是按行、连续存储的。任务:用类模板实现操作接口相同、按列存储的、任意元素类型的多维数组。#include <iostream>using namespace std;template<class T>class Array;template <class T>class ArrayTmp{ friend class Array <T>; T* tpBody; int iRows,iColumns,iCurrentRow; ArrayTmp(int iRsz, int iCsz) { tpBody=new T[iRsz*iCsz 阅读全文
posted @ 2013-01-19 17:52 Yogurshine 阅读(1759) 评论(0) 推荐(0) 编辑
question:数组
摘要:1. int a[100];2. int *p; p=new int[SIZE]; //p是指向int类型的数组的指针 。动态分配内存。在事先无法确定数组大小情况下一般用这种方法。最常用 char * name;{...name =new char[strlen(pname)+1];stocpy(name,pname);}或 string name 更方便。(#include<string>) 阅读全文
posted @ 2013-01-17 21:35 Yogurshine 阅读(179) 评论(0) 推荐(0) 编辑
static 成员变量以及static成员函数
摘要:静态成员变量必须在类外实现初始化。静态数据成员存储在静态存储区,在程序整个运行期间都存在。sizeof(类名Student)=sizeof(对象名s1)为不包含静态数据成员的内存大小。常用来解决计数问题#include <iostream>using namespace std;class Student{public: Student() { cout<<"create one student"<<endl; total++; cout<<total<<endl; } static int number () { 阅读全文
posted @ 2013-01-17 21:30 Yogurshine 阅读(455) 评论(0) 推荐(0) 编辑
C静态存储动态存储
摘要:动态存储方式所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放。 典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配, 调用函数完毕立即释放。如果一个函数被多次调用,则反复地分配、 释放形参变量的存储单元。静态存储方式所谓静态存储方式是指在程序编译期间分配固定的存储空间的方式。该存储方式通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束。全局变量,静态变量等就属于此类存储方式。总结从以上分析可知, 静态存储变量是一直存在的, 而动态存储变量 阅读全文
posted @ 2013-01-17 21:05 Yogurshine 阅读(400) 评论(0) 推荐(0) 编辑
C的指针数组与数组指针
摘要:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。int* a[4] 指针数组 表示:数组a中的元素都为int型指针 元素表示:*a[i] *(a[i])是一样的,因为[]优先级高于*int (*a)[4] 数组指针 表示:指向数组a的指针 元素表示:(*a)[i] 阅读全文
posted @ 2013-01-17 19:58 Yogurshine 阅读(168) 评论(0) 推荐(0) 编辑
C++的几个注意点
摘要:1.static全局变量与普通的全局变量有什么区别: static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值(静态局部变量是指在函数体内声明和定义的局部变量,它仅供本函数使用,即其他函数不能调用它。静态局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次函数调用时,该变量已有值,就是上一次函数调用结束时的值。 静态局部变量在静态存储区分配存储单元,在程序的整个运行期间都不释放。静态局部变量是在编译时赋初值的,即只赋初值一次。)static函数与普通函数有 阅读全文
posted @ 2013-01-16 21:38 Yogurshine 阅读(432) 评论(0) 推荐(0) 编辑
UML系列图--状态图
摘要:状态图(statechart diagram): 用来描述一个特 状态图 定的对象所有可能的状态,以及由于各种事件的发 定的对象所有可能的状态 以及由于各种事件的发 生而引起的状态之间的转移和变化。状态图的要素:椭圆或圆角矩形:表示对象的一种状态,椭圆内部填写状态名箭头:表示从箭头出发的状态可以转换到箭头指向的状态 事件:引起状态转换的原因。事件名可在箭头线上方标出条件:事件名后加方括号,括号内写状态转换条件 实心圆:初始状态 内部实心的同心圆:最终状态详见这个:http://wenku.baidu.com/view/e8f82304a6c30c2259019eec.html 阅读全文
posted @ 2013-01-14 10:53 Yogurshine 阅读(3298) 评论(0) 推荐(0) 编辑
UML系列图--用例图
摘要:UML-Unified Model Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展示系统的功能,包括用例图。 对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。UML的重要内容可以由以下五种类图定义用例图:从用户角度描述系统功能,并指各功能的操作者。静态图:包括类图,包图,对象图。 类图:描述系统中类的静态结构 包图:是包和类组成的,表示包与包之间的关系,包图描述系统... 阅读全文
posted @ 2013-01-14 10:07 Yogurshine 阅读(136246) 评论(7) 推荐(36) 编辑
代码复制到word格式不变
摘要:经常会需要把代码拷贝到word中,但是拷贝过去格式、字体颜色等都没了。下面有2中方法解决这个问题,嘿嘿1.解决eclipse复制代码到word中没有颜色去掉启用折默认的勾。就可以直接复制了。2.可以把代码先用Notepad++打开,下面讲如何使用Notepad++让代码高亮复制至word,网页问题。Export to RTF 是将高亮的代码创建到word文档中。Export to HTML 是将高亮的代码创建到Html网页中。后面三种是以不同的形式复制高亮代码至剪切板,而不创建相应文件。经实验都成功。中文乱码的问题复制的时候会发现Notepad++对中文的支持真是让人XXXXXX但是其实也有很 阅读全文
posted @ 2013-01-13 23:09 Yogurshine 阅读(13528) 评论(0) 推荐(1) 编辑
常用的设计模式
摘要:--什么是设计模式?设计模式有哪几种分类?每类模式重点解决什么问题?设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。--根据模式的目的,将模式分为三大类: 创建型模式:抽象化了实例化过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。 结构性模式:涉及到如何组合类和对象以获得更大的结构。结构型模式采用继承机制来组合接口或实现。 行为型模式:涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻画了在运行时难以跟踪的复杂的控制流。常见的几个设计 阅读全文
posted @ 2013-01-12 22:18 Yogurshine 阅读(12831) 评论(1) 推荐(0) 编辑
C++的模板类和函数模板
摘要:一.模板类(和类模板一样?)先看一个正确的例子#include <iostream>using namespace std;template <class T>class MyType {public: MyType(){t=0;} MyType (T ta){t=ta;} T getValue(); MyType operator+(MyType mt1){ MyType mt; mt.t=t+mt1.t; return mt;}private: T t;};template <class T>T MyType<T>::... 阅读全文
posted @ 2013-01-12 18:45 Yogurshine 阅读(376) 评论(0) 推荐(0) 编辑
C++的多态
摘要:C++多态机制:1)参数多态:模板2)强制多态:类型强制转换3)重载多态:函数重载,操作符重载4)包含多态:子类型的虚函数C++中采用虚拟函数实现包含多态,虚拟函数为C++提供了更为灵活的多态机制,这种多态性在程序运行时才能确定,因此虚拟函数是多态性的精华,至少含有一个虚拟函数的类称为多态类。包含多态在程序设计中使用十分频繁。举一个自己写的例子,包含着各种多态:#include <iostream>using namespace std;template <class T>class Base {public: Base(){d=0;p=NULL;} Base(int 阅读全文
posted @ 2013-01-12 17:04 Yogurshine 阅读(296) 评论(0) 推荐(0) 编辑
C++覆盖、重载、多态区别
摘要:覆盖:在基类中定义了一个非虚拟函数,然后在派生类中又定义了一个同名同参数同返回类型的函数,这就是覆盖了。在派生类对象上直接调用这个函数名,只会调用派生类中的那个。//coverage.cpp#include <iostream>using namespace std;class A{public: void ShowMessage();};class B:public A{public: void ShowMessage();};void A::ShowMessage(){ cout<<"Hello,This is A./n"; return;}vo 阅读全文
posted @ 2013-01-12 16:41 Yogurshine 阅读(8452) 评论(0) 推荐(1) 编辑
虚函数继承(虚函数指针与虚函数表)
摘要:一般继承(无虚函数覆盖)下面,再让我们来看看继承时的虚函数表是什么样的。假设有如下所示的一个继承关系:请注意,在这个继承关系中,子类没有重载任何父类的函数。那么,在派生类的实例中,其虚函数表如下所示:对于实例:Derive d; 的虚函数表如下:我们可以看到下面几点:1)虚函数按照其声明顺序放于表中。2)父类的虚函数在子类的虚函数前面。我相信聪明的你一定可以参考前面的那个程序,来编写一段程序来验证。一般继承(有虚函数覆盖)覆盖父类的虚函数是很显然的事情,不然,虚函数就变得毫无意义。下面,我们来看一下,如果子类中有虚函数重载了父类的虚函数,会是一个什么样子?假设,我们有下面这样的一个继承关系。为 阅读全文
posted @ 2013-01-12 12:12 Yogurshine 阅读(2163) 评论(0) 推荐(0) 编辑
虚函数表和虚基类表
摘要:任何类型的指针变量都是占用4个字节。实现虚函数需要对象附带一些额外信息,以使对象在运行时可以确定该调用哪个虚函数。对大多数编译器来说,这个额外信息的具体形式是一个称为vptr(虚函数表指针)的指针。vptr指向的是一个称为vtbl(虚函数表)的函数指针数组。每个有虚函数的类都附带有一个vtbl。当对一个对象的某个虚函数进行请求调用时,实际被调用的函数是根据指向vtbl的vptr在vtbl里找到相应的函数指针来确定的。编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。类的每个虚成员占据虚函数表中的一行。如果类中有N个虚函数,那么其虚函数表将有N*4字节的大小。 虚函数 阅读全文
posted @ 2013-01-12 11:14 Yogurshine 阅读(2044) 评论(0) 推荐(0) 编辑
C++中的继承(派生)的一些误区
摘要:1.派生类继承了基类的全部数据成员和除了构造、析构函数之外的全部成员函数,但是这些成员的访问属性在派生的过程中通过继承方式可以来调整。(个人理解:派生类复制了基类的所有东西,但是防止派生类的误用,或者基类的有些属性子类用不到(继承是全盘拷贝的),就通过继承方式public\private\protected来限制。)2.派生类成员的构成1)继承基类成员2)改造基类成员 由于基类成员在派生类中可能不起作用,但也被继承下来,在生成对象时要占用内存空间,造成浪费。 改造基类的方法有:一是继承方式来控制,改变基类成员在派生类中的访问控制属性。 二是重载成员函数,则基类成员在派生类中被覆盖(但是仍然存在 阅读全文
posted @ 2013-01-11 22:06 Yogurshine 阅读(502) 评论(0) 推荐(0) 编辑
C++类中的访问权限问题---public/protected/private
摘要:派生类继承了基类的全部数据成员和除了构造、析构函数之外的全部成员函数,但是这些成员的访问属性在派生的过程中通过继承方式可以来调整。第一:private,public,protected方法的访问范围.(public继承下) private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问.protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问 注:友元函数包括两种:设为友元的全局函数,设为友元类中的成员函数第二:类的继承后方法属性变化: 阅读全文
posted @ 2013-01-11 21:32 Yogurshine 阅读(1030) 评论(0) 推荐(0) 编辑
计算机内存中的对齐和C++ 类的存储空间大小
摘要:计算机内存中的对齐一、什么是对齐,以及为什么要对齐⒈现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。⒉对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为 32位) 阅读全文
posted @ 2013-01-11 19:38 Yogurshine 阅读(1032) 评论(0) 推荐(1) 编辑
C++的模板与类属类
摘要:1.类属类按照类定义中是否带参数,类可分为类属类与非类属类,采用参数化类型定义的类(也称为 类模板)称为类属类(generic class),或参数 化类(parameterized class)。它仅仅是描述 了一组类型的通用样板。反之,非类属类就是定义中不带参数的类。由于类属类里面所处理的对象的数据类型尚未确定,程序员不可以使用类属类来直接创建对象实例,即一个类属类还不能认为是一种真正的类类型。必须先类属类———(实例化)———具体的类-----(实例化)----具体的对象可分为:无约束类属类– 类属类实例化的实际类属参数可以是任何类型。无约 束类属类的实际参数的类型并不要求具有共同的祖先 阅读全文
posted @ 2013-01-11 16:41 Yogurshine 阅读(2435) 评论(0) 推荐(0) 编辑
C++ 的Virtual的用法
摘要:1.虚函数类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Base的print函数。这是面向对象中的多态性的体现基类的函数调用如果有virtual则根据多态性调用派生类的,如果没有virtual则是正常的静态函数调用,还是调用基类的。class Base{public:Base(){}public: virtual vo... 阅读全文
posted @ 2013-01-10 23:46 Yogurshine 阅读(23754) 评论(0) 推荐(1) 编辑
单例模式
摘要:单例模式属于对象创建型模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点。对一些类来说,只有一个实例是很重要的,虽然系统中可以有许多打印机,但却只应该有一个打印机假脱机,只应该有一个文件系统和一个窗口管理器,一个数字滤波器只能有一个A/D转换器,一个会计系统只能专用于一个公司。怎样才能保证一个类只有一个实例并且这个实例易于被访问,一个全局变量使得一个对象可以被访问,但它不能防止你实例化多个对象,一个更好的方法是让类自身负责保存他的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法,这就是Singleton模式。模式的问题:保证一个类仅有一个实例, 阅读全文
posted @ 2013-01-10 22:27 Yogurshine 阅读(226) 评论(0) 推荐(0) 编辑
java 的toString()函数
摘要:因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法。调用System.out.println(obj.toString());会得到输出:xxxx@xxxxxxx的类名加地址形式cn.com.singleton.Singleton@14a55f2 阅读全文
posted @ 2013-01-10 22:00 Yogurshine 阅读(212) 评论(0) 推荐(0) 编辑
UML中类之间的关系---依赖、关联、继承(泛化)、实现、组合、聚合
摘要:继承(泛化)指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间 最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字 implements明确标识,在设计时一般没有争议性;依赖可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关 阅读全文
posted @ 2013-01-10 21:06 Yogurshine 阅读(438) 评论(0) 推荐(0) 编辑
Java中List以及Vector、ArrayList
摘要:线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(El... 阅读全文
posted @ 2013-01-08 18:34 Yogurshine 阅读(282) 评论(0) 推荐(0) 编辑
关于指针的一些说明int*p=NULL等
摘要:你要想给p的地址赋值0可以,但是不能,在它指的空间赋值你要想给p指向的空间赋值可以,但是,它的地址不能是0 两个例子:file1.c#include<stdio.h>void main(){ int *p = &i;p = NULL; p = 0; p = '\0'}file2.c#include<stdio.h>void main(){ int i = 23; int *p = &i; *p = NULL; *p = 0; *p = '\0';}因为大多数编译器规定,内存为0的地方不能写操作。很多时候把定义一个指针的p赋 阅读全文
posted @ 2013-01-07 22:57 Yogurshine 阅读(786) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示