摘要: 下面来谈谈书中的第二部分,用Interface Classes来降低编译的依赖。从上面也可以看出,避免重编的诀窍就是保持头文件(接口)不变化,而保持接口不变化的诀窍就是不在里面声明编译器需要知道大小的变量,Handler Classes的处理就是把变量换成变量的地址(指针),头文件只有class xxx的声明,而在cpp里面才包含xxx的头文件。Interface Classes则是利用继承关系和多态的特性,在父类里面只包含成员方法(成员函数),而没有成员变量,像这样: 1 // Person.h 2 #include 3 using namespace std; 4 5 class My.. 阅读全文
posted @ 2014-02-16 22:13 Jerry19880126 阅读(1537) 评论(1) 推荐(3) 编辑
摘要: 下面再来看书,去理解书上说的Handler classes就简单多了,我们大概过一下。假设我们要写一个Person类,如下: 1 class Person 2 { 3 private: 4 string name; 5 MyDate birthday; 6 MyAddress address; 7 8 public: 9 // fallows functions10 // ...11 };这个Person类里面包含有人的名字,人的生日以及地址,还有一些没有列出来的方法。注意到这里用到了string(它不是一个class,只是一个typedef,大多数情... 阅读全文
posted @ 2014-02-16 22:10 Jerry19880126 阅读(1583) 评论(3) 推荐(4) 编辑
摘要: 在说这一条款之前,先要了解一下C/C++的编译知识,假设有三个类ComplexClass, SimpleClass1和SimpleClass2,采用头文件将类的声明与类的实现分开,这样共对应于6个文件,分别是ComplexClass.h,ComplexClass.cpp,SimpleClass1.h,SimpleClass1.cpp,SimpleClass2.h,SimpleClass2.cpp。ComplexClass复合两个BaseClass,SimpleClass1与SimpleClass2之间是独立的,ComplexClass的.h是这样写的:#ifndef COMPLESS_CLAS 阅读全文
posted @ 2014-02-16 22:07 Jerry19880126 阅读(3774) 评论(3) 推荐(6) 编辑