上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 44 下一页
摘要: 组合不用继承多余的函数。由此可见,组合比继承具有更大的灵活性和更稳定的结构,一般情况下应该优先考虑组合。只有当下列条件满足时才考虑使用继承:子类是一种特殊的类型,而不只是父类的一个角色子类的实例不需要变成另一个类的对象子类扩展,而不是覆盖或者使父类的功能失效最后还说一句,“优先使用对象组合,而不是继承”是面向对象设计的第二原则。但并不是说什么都设计都用组合,只是优先考虑组合,更不是说继承即使不好的设计,应该用组合,应为他们之间也有各自的优势。下面是他们之间的优缺点比比较表:组 合 关 系继 承 关 系优点:不破坏封装,整体类与局部类之间松耦合,彼此相对独立缺点:破坏封装,子类与父类之间紧密耦. 阅读全文
posted @ 2013-01-26 16:32 zaleilynn 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 实例代码:// test1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <string.h>#include <string>#include <memory>#include <list>#include <iostream>using namespace std;using namespace std::tr1;class CInt: public enable_shared_fr 阅读全文
posted @ 2013-01-25 23:37 zaleilynn 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 1: #include <list> 2: #include <string> 3: #include <functional> 4: #include <iostream> 5: 6: struct S { 7: std::string firstname; 8: std::string secondname; 9: int ID; 10: // 重新定义小于,因为默认的sort函数调用的操作符是<,所以我们只需要重载 < 就好了 11: ... 阅读全文
posted @ 2013-01-25 23:06 zaleilynn 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 转载自http://www.searchtb.com/2012/08/zeromq-primer.html写的比较好,深入骨髓了:一、ZeroMQ的背景介绍引用官方的说法: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是 “成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接 字之上的一 层封装。ZMQ让编写高性能网络 阅读全文
posted @ 2013-01-25 20:06 zaleilynn 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 除了std::tr1::bind,另外有一个boost::bind,这个应该与boost中其他的数据结构结合的很紧。后者好像用的更多。(boost::function和boost::bind已经纳入了std::tr1,所以这两者应该是一样的)bind使用形式bind(&f)() 假设f是一个全局函数,绑定全局函数并调用bind (&A::f, A())() 假设A是一个构造函数为空的类,这个形式绑定了类的成员函数,故第二个参数需要传入一个成员。(成员静态函数除外)bind (&A::f, _1)(new A()) 同上,效果是一样的,但是使用了占位符,使得没有固定的的对 阅读全文
posted @ 2013-01-25 00:22 zaleilynn 阅读(3553) 评论(0) 推荐(0) 编辑
摘要: 1.遍历方法for(xml_node<> *node = doc.first_node(); node; node = node->next_sibling()){ printf("node:%s value:%s\n", node->name(), node->value()); } 阅读全文
posted @ 2013-01-24 22:34 zaleilynn 阅读(182) 评论(0) 推荐(0) 编辑
摘要: char *s[] = { "aaa", "bbb" }获得这个s的中包涵的字符串个数: sizeof(s)/sizof(s[0]) 阅读全文
posted @ 2013-01-24 22:32 zaleilynn 阅读(751) 评论(0) 推荐(0) 编辑
摘要: 1.空的智能指针 假设如此定义typedef shared_ptr<int> IPtr; 返回为空可以设计为 IPtr f() { return IPtr(); } 测试是否为空,一般可以使用get() 返回其包裹的原指针测试是否为空,在上面的设计中,也可以直接看 IPtr i_p = f(),用!i_p来判断是否为空2. 类中也可以如此获得指向自己的智能指针 IPtr(this) 阅读全文
posted @ 2013-01-24 22:08 zaleilynn 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://qz.qq.com/4439401/blog?uin=4439401&vin=0&blogid=1335593811条款1:不要把一个原生指针给多个shared_ptr管理int* ptr = new int;shared_ptr<int> p1(ptr);shared_ptr<int> p2(ptr); //logic errorptr对象被删除了2次这种问题比喻成“二龙治水”,在原生指针中也同样可能发生。条款2:不要把this指针给shared_ptrclass Test{public:void Do(){ m_sp = sha 阅读全文
posted @ 2013-01-23 09:41 zaleilynn 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 1.若节点使用瞬时节点,如何把任务通知到节点?2.如何更新虚拟机的状态信息? 阅读全文
posted @ 2013-01-20 13:39 zaleilynn 阅读(113) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 44 下一页