使用function改进设计
摘要:我们假设这样一种应用场景,有两个类A和B,在B中需要调用A的一个方法(成员函数)。那么我们的代码可能是这个样子的:class A{public: void Func(void) { printf("%s\r\n", __FUNCTION__); }};class B{public: void UseA() { a->Func(); }public: A* a;}; 调用代码是这样的:A a;B b;b.a = &a;b.UseA(); 我们观察上面的代码,看看有什么问题:两个类中B对A产生了一个依赖关系,这让人有点不爽;哪天我们想用另外一个类C替代A的作用意味
阅读全文
posted @
2010-12-06 12:22
小时了了
阅读(544)
推荐(2) 编辑
在VS2010中使用auto关键字和lambda表达式
摘要:先看一段使用了std::list的代码: std::list array; for(int i = 0; i ::iterator it = array.begin(); it != array.end(); ++it) { (*it) += 1; } for (std::list::iterator it = array.begin(); it != array.end(); ++it) { printf("%d\t", *it); } 我们观察这段代码。首先,它是正确的,没什么错误,但看起来太臃肿了。本来我要完成每个元素的值加1关键的代码只有一行 (*it) += 1;
阅读全文
posted @
2010-12-04 15:49
小时了了
阅读(1324)
推荐(0) 编辑