随笔 - 156
文章 - 0
评论 - 35
阅读 -
72万
02 2014 档案
重讲设计模式
摘要:原则:1 单一职责原则2 开放封闭原则3 里氏代换原则4 依赖倒转原则一 创建型模式1 简单工厂模式工厂方法模式抽象工厂模式简单工厂模式+反射机制可以替代抽象工厂模式反射机制:研究java的反射机制,为何C++没有,如何实现?2 原型模式主要解决OO语言深拷贝问题java、C#等通过实现cloneble接口。C++类嵌套实现复制拷贝函数3 建造者模式4 单例模式二 结构性设计模式5 适配器模式6 代理模式7 装饰者模式8 组合模式三 行为型8 策略者模式9 模板方法模式10 观察者模式11 备忘录模式A a;A a(); 编译器会当成函数声明A * a=new A();A * a=new A;
阅读全文
宏定义要加括号
摘要:#define DI_INPUT_NUM 11+2int a = DI_INPUT_NUM * 3那么a = 11+2 *3 = 11+6 =17#define DI_INPUT_NUM (11+2)int a = DI_INPUT_NUM * 3那么 a =(11+2)*3 = 13*3=39上面2中情况可以看到第二种才是宏定义的本意。所以习惯性会加个括号,其实空定义不管是数字或者表达式,都必须加括号,这是编程的很好习惯。
阅读全文
enum hack
摘要:关于占用内存的大小,enum类型本身是不占内存的,编译器直接替换。但是enum类型的变量肯定是占内存的.class A{ public: //enum类型本身不占内存 enumEnumTest{ a =1,b =5};};class B{ public: private: //enum理想的变量会占用内存 enumEnumTest enumSample1;};int main(){cout <<"sizeof(Class A) = "<<sizeof(A)<< endl; cout <<"sizeof(Class B
阅读全文