摘要: 感觉有点复杂,而且我们一般不会去写一个模板,然后再交换模板里的指针;有可能的情况是上上篇博文提到的情况,可能成员变量含有复制构造花销大的东东,这时需要一些特别的交换函数。而Meyers大师却考虑的灰常超前,佩服啊! 阅读全文
posted @ 2012-09-30 22:22 hailong 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 好吧,现学现卖,表示标题有点长啊。问题不在描述了,粘贴格式不对。只把我修改好的特化版本代码贴出:#include <string>#include <iostream>#include <stdlib.h>#include <string>using namespace std;template <typename Type> int count(Type *a, int sz, Type which ){ int n = 0; for(int i=0; i < sz; i++) if ( a[i] == which ) n++ 阅读全文
posted @ 2012-09-30 22:06 hailong 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 模板特化,任何针对模板参数进一步进行条件限制设计的特化版本。《泛型思维》全特化就是全部特化,即针对所有的模板参数进行特化。《c++ primer》偏特化就是部分特化,即针对部分模板参数进行特化。《c++ primer》全特化和偏特化的定义不是很严格,所以有的时候不容易让人理解。举例如下:template<class U,class T>class C{};全特化:template<>class C<int,char>{};偏特化:template<class U>class C<U,int>{};大家应该对上面的例子应该没有什么异议吧 阅读全文
posted @ 2012-09-30 21:56 hailong 阅读(717) 评论(0) 推荐(0) 编辑
摘要: test case1:#include <iostream>#include<vector>#include <string>#include <boost/foreach.hpp>#include <boost/shared_ptr.hpp>using namespace std;class Widget{public: Widget(){} Widget(int aData, const string &aStr):m_Data(aData), m_Str(aStr){} Widget(const Widget& 阅读全文
posted @ 2012-09-30 21:38 hailong 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 正在读《Effective C++》这本书的确是精品,但因为没有习题和源码,令我等屌丝很难测试练习,还要自己编写test case。哪位博友有好招,更好的学好这本书啊;另外在读《unix 网络编程第一卷》,为了学习基础的TCP/IP的东西选择了这边经典书,但源码如何在win32环境下跑呢?谁给点建议,如何也把这本书学好? 阅读全文
posted @ 2012-09-30 21:13 hailong 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 之前在对于std内iterator的使用并没有太关心,一般是建立容器后,要进行遍历打印,查找之类的操作,但这种无需修改原来容器内的值的操作,比较好的策略是声明为const_iterator;比如: vector<int> lVec; lVec.push_back(1); lVec.push_back(2); lVec.push_back(3); std::vector<int>::const_iterator lIter = lVec.begin(); cout << *lIter << endl; lIter = lVec.begin()+1; 阅读全文
posted @ 2012-09-30 15:24 hailong 阅读(349) 评论(0) 推荐(0) 编辑
摘要: http://topic.csdn.net/t/20020311/10/567589.htmlC++对象的序列化(Serialize)的一般化解决方法:。在jjhou的《深入浅出MFC》一书中,曾有部分章节提到了这个主题,MFC中也有类似的实例。只不过,我所需要的是更具有一般化意义的通用的解决方案。首要的一点,在一个包含类层次的设计中,我可以使用类的标示将对象的类型信息格式化输出到stream中,在从stream中读取时,解析这个类型信息来决定实例化哪一个类。显而易见的问题是,类自己可以正确的识别stream中的内容是否与自己的类型相匹配,可是作为类的使用者来说,他并没有简单的方法获知应该使用 阅读全文
posted @ 2012-09-30 15:24 hailong 阅读(112) 评论(0) 推荐(0) 编辑