- 博客(18)
- 收藏
- 关注
原创 OOD启示录
(1)所有数据都应该隐藏在所在的类的内部。p13 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15 (3)尽量减少类的协议中的消息。p16 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。 p16 (5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。p17 如果类的
2005-01-12 20:16:00
3746
1
原创 Effective C++
条款1:尽量用const和inline而不用#define条款2:尽量用而不用条款3:尽量用new和delete而不用malloc和free条款4:尽量使用c++风格的注释条款5:对应的new和delete要采用相同的形式条款6:析构函数里对指针成员调用delete条款7:预先准备好内存不够的情况条款8: 写operator new和operator delete时要遵循常规条款9: 避免
2005-01-12 20:11:00
1606
原创 深入探讨C++对象模型 之 站在对象模型的尖端
Template:Template 的二个问题:1. template 的声明。当编译器看到一个template 声明时,编译器什么反应都没有。一切都不可用,只有通过template 的某个实体来存取或操作。2. template 的具现。Point fPoint;//产生一份实体与Point class 的float instantiation 在程序中
2004-12-23 21:44:00
1616
原创 深入探索C++对象模型 之 执行期语意学
在C++ 中的一件很困难的事,就是不太容易从程序代码看出表达式的复杂度。如下面语句:if ( yy.operator = = ( xx.getValue () ) ) )将被扩展为下面这样的C++伪码:{ X temp1 = xx.getValue (); Y temp2 = temp1.operator Y(); Int temp3 = yy.operator = =
2004-12-23 10:26:00
1565
原创 深入探索C++对象模型 之 构造,解构,拷贝语意学
纯虚拟函数的存在一个pure virtual function 能被定义和静态地调用,不能经由虚拟机制调用。但是要不要定义又class 设计者决定。唯一例外的情况是pure virtual destructor ,class 设计者一定得定义它,因为一个derived class destructor 会被编译器加以扩展,以静态调用的方式调用其“每一个virtual base class”以及
2004-12-21 15:02:00
1922
转载 设计模式之我爱我家
目录:1、ABSTRACT FACTORY---抽象工厂2、BUILDER---生成器3、FACTORY METHOD---工厂方法4、PROTOTYPE---原型5、SINGLETON---单件6、FACTORY METHOD---工厂方法7、ADAPTER----适配器8、COMPOSITE---组合模式9、DECRATOR---装饰10、FAÇADE---外观11、FLYWEIGHT---享
2004-12-21 11:53:00
1388
转载 Session详解
目录:一、术语session二、HTTP协议与状态保持三、理解cookie机制四、理解session机制五、理解javax.servlet.http.HttpSession六、HttpSession常见问题七、跨应用程序的session共享八、总结参考文档一、术语session在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与s
2004-12-21 11:47:00
1246
原创 深入探索C++对象模型 之 Function语意学
名称的特殊处理(Name Mangling)如member:class bar{public: int ival; …}class foo :public class bar {public: int ival; …}经处理后:class foo{public:int ival_3bar;int ival_4foo;}如function:class po
2004-12-20 08:29:00
2967
原创 深入探索C++对象模型 之 Data语意学
Data Member 的绑定一个inline 函数实体,在整个class 声明未被完全看见之前,是不会被评估求值的。但是,这对于member function 的 argument list 并不为真。Argument list 中的名称还是会在它们第一次遭遇时被适当地决议完成。因此在extern 和nested type names 之间的非直觉绑定操作还是会发生。 Data Me
2004-12-16 15:34:00
1979
转载 java之旅 (六)接口
interface关键词进一步强化了abstract的概念。你可以把它想成“纯的”abstract类。它能让开发人员定义类的形式:方法名,参数列表,返回值的类型,但是却没有方法的正文。interface也可以包括数据成员,但是它天生就是static和final的。interface只提供形式,不谈实现。 要创建一个实现了某个(或者某组)interface的类,就必须使用implements
2004-12-14 09:28:00
1092
转载 java之旅 (五)多态性
多态性是继数据抽象和继承后,面向对象语言的第三个特征。 绑定(binding)(看起来到像一个音译词):将方法的调用连到方法本身被称为绑定,当绑定发生在程序运行之前,被称做前绑定(earlybinding),而在程序运行的时候根据对象的类型来决定该绑定方法的成为后绑定,也叫运行时绑定(run-time binding)或动态绑定(dynamic binding);java的所有方法都采用后
2004-12-14 09:27:00
1080
转载 java之旅 (四)隐藏实现 & 复用类
访问控制符, import, 每个编译单元(.java文件)只能有一个public类,如果还有其他类,那这些类就成为这个public类的辅助类,这是因为他们都不是public的,因此对外边世界来说,它们都是看不到的。编译.java文件的时候,它里面的每个类都会产生输出。其输出的文件名字就是.java里面类的名字,这样写不了几个java文件就会产生一堆.class文件,但是不要奇怪,一个能正常工
2004-12-14 09:24:00
1132
转载 java之旅 (三)初始化和清理
用构造函数保证初始化,JAVA的对象创建和初始化是同一个概念,你不能要这个而不要那个。 方法的重载 区分经重载的方法:唯一的参数类型的列表 构造函数:如果没有构造函数,编译器会帮你创建一个无参类型的构造函数,但是如果你构造了一个,那么 不管你构造的是个啥样的,编译器都不会再帮你构造了。 this的用法:this只应用
2004-12-14 09:22:00
1070
转载 java之旅 (二)基本概念
在JAVA编程思想(第三版)的第二章讲到了“万物皆对象”。在java里用new创建对象时都会放在堆里,而从效率方面考虑将原始(primitive)数据类型放到了栈里。关于作用域,如下代码:///////////////////////////////////////////{ int x = 125; { int x=34; //Illegal }}/////////////////////
2004-12-14 09:19:00
1203
转载 java之旅(一)什么是java
Java语言的主要特点:Java是一种简单的、跨平台的、面向对象的、分布式的、半编译半解释的、健壮的、安全的、性能很优异的、多线程的、动态的语言。(看起来只有一句话,可是每个形容词都可以拿出来说上很大的一个篇幅。)Java 与 c 及c++的比较:1、自动内存管理:Java对于内存的分配是动态的,并具有垃圾回收机制。2、不在类外定义全局变量。3、Java中将不再使用goto语句。4、Java中
2004-12-14 09:16:00
1369
原创 深度探索C++对象模型 之 构造函数语意学
explicit被引入C++是为了使程序员能够制止“单一参数的constructor函数”被当做一个conversion 运算符。有四种情况:1.带有default constructor 的member classobject2.带有default constructor 的base class3.带有一个virtual function 的class4.
2004-12-12 20:31:00
2531
转载 C库函数手册
C库函数手册 分类函数,所在函数库为ctype.hint isalpha(int ch) 若ch是字母(A-Z,a-z)返回非0值,否则返回0int isalnum(int ch) 若ch是字母(A-Z,a-z)或数字(0-9) 返回非0值,
2004-12-04 21:30:00
1127
原创 深入探索C++对象模型 之 关于对象(Object Lessons)
2004年12月4日11:34:42众所周知c++是一个多范性的语言。包括:过程性的,抽象数据类型(ADT,Object-Based),面向对象的(Object-Oriented)。所谓过程性的程序设计方法就是传统的c程序的设计方法:数据和处理数据的操作是分开来声明的。而Object-Based的程序设计方法把数据和操作封装在一起(如String class),他不支持类的扩充,也就没有多态形
2004-12-04 13:19:00
3127
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人