boost库shared_ptr实现桥接模式
主程序
/*将抽象部分与实现部分分离,使它们都能够独立的变化*/
#include "bridge.h" int main()
{
cout <<"main start" <<endl;
sample smp;
smp.display();
cout <<"main end" <<endl;
//sample::bridge bri; //error: ‘class sample::bridge’ is private
return 0;
}
bridge.h
#include <boost/smart_ptr.hpp>
#include <iostream>
using namespace boost;
using namespace std; class sample
{
private:
class bridge;
shared_ptr<bridge> bptr;
public:
sample();
void display();
}; class sample::bridge
{
public:
void display();
};
bridge.cpp
#include "bridge.h"
sample::sample()
{
bptr = make_shared<bridge>();
}
void sample::display()
{
bptr->display();
}
void sample::bridge::display()
{
cout << "bridge display!"<<endl;
}
makefile
.SUFFIXES:.h .c .cpp .o CC=$(CXX) $(CXX_FLAG) RM = rm
SRCS = bridge.cpp main.cpp
PROGRAM = bridge
OBJS=$(SRCS:.cpp=.o) INC_PATH = -I$(BOOST_INCLUDE)
LIB_PATH = -L$(BOOST_LIB)
LIBS = -lboost_date_time $(PROGRAM):$(OBJS)
$(CC) $? $(LIB_PATH) $(LIBS) -o $@ $(OBJS):$(SRCS)
$(CC) $(CPPFLAGS) -c $(SRCS) $(INC_PATH) .PHONY:clean
clean:
$(RM) $(PROGRAM) $(OBJS)
boost库shared_ptr实现桥接模式的更多相关文章
- 2015-03-12---外观模式,建造者模式(附代码),观察者模式(附代码),boost库应用
今天白天主要看了boost库的应用,主要是经常使用的一些库,array,bind,function,regex,thread,unordered,ref,smartpointers库,晚上看了看设计模 ...
- (六)boost库之内存管理shared_ptr
(六)boost库之内存管理shared_ptr 1.shared_ptr的基本用法 boost::shared_ptr<int> sp(new int(10)); //一个指向整数的sh ...
- boost库之shared_ptr
shared_ptr 编辑 目录 1简介 2作用 3历史 4概要 5用法 ▪ 删除共享对象 ▪ 标准容器 1简介编辑 shared_ptr是一种智能指针(smart pointer). 2作用编辑 s ...
- 详解 boost 库智能指针(scoped_ptr<T> 、shared_ptr<T> 、weak_ptr<T> 源码分析)
一.boost 智能指针 智能指针是利用RAII(Resource Acquisition Is Initialization:资源获取即初始化)来管理资源.关于RAII的讨论可以参考前面的文章.在使 ...
- boost库的安装,使用,介绍,库分类
1)首先去官网下载boost源码安装包:http://www.boost.org/ 选择下载对应的boost源码包.本次下载使用的是 boost_1_60_0.tar.gz (2)解压文件:tar - ...
- 比特币源码分析--C++11和boost库的应用
比特币源码分析--C++11和boost库的应用 我们先停下探索比特币源码的步伐,来分析一下C++11和boost库在比特币源码中的应用.比特币是一个纯C++编写的项目,用到了C++11和bo ...
- boost库在windows下的编译和使用
因为跨平台的原因,现在要使用到boost库,boost库非常大,现在处于摸索阶段. 首先来说boost库在window下的安装和使用. 一.下载 首先从boost官方主页http://www.boos ...
- boost库----enable_shared_from_this类的作用和实现原理
使用boost库时,经常会看到如下的类 class A:public enable_share_from_this<A> 在什么情况下要使类A继承enable_share_from_thi ...
- Win7下Boost库的安装
Boost库是C++领域公认的经过千锤百炼的知名C++类库,涉及编程中的方方面面,简单记录一下使用时的安装过程 1.boost库的下载 boost库官网主页:www.boost.org 2.安装 将下 ...
随机推荐
- POJ 2217:Secretary(后缀数组)
题目大意:求两个字符串的公共子串. 分析: 模板题,将两个字符串接起来用不会出现的字符分割,然后求分属两个字符串的相邻后缀lcp的最大值即可. 代码: program work; type arr=. ...
- centos6.5 mysql忘记登入密码
1.修改文件目录为/etc/my.cnf的文件; 在[mysqld]的段中加上一句:skip-grant-tables,保存文件重启数据库: 例如: [mysqld] skip-grant-table ...
- 【HDU 1711 Number Sequence】
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission ...
- bzoj1093【ZJOI2007】最大半联通子图
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1093 sol :一开始理解错题意了QAQ,还莫名其妙写挂了QAQ,调了半天 首先显然一个强联 ...
- element ui form表单清空规则
公司项目重构,经过商定使用element ui.在重构项目的时候发现一下element ui上很蛋疼的东西. 例如,这个form表单就是一个.趁着在高铁上没事,把想写的东西写一下. 先说一下eleme ...
- python斐波那契数列复杂度
契数列 概述: 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n ...
- O(∩_∩)O哈哈~
原文发布时间为:2009-04-30 -- 来源于本人的百度文章 [由搬家工具导入]
- [论文]CA-Tree: A Hierarchical Structure for Efficient and Scalable Coassociation-Based Cluster Ensembles
作者:Tsaipei Wang, Member, IEEE 发表:IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART B: CYBERNET ...
- Codeforces 762A k-th divisor(数论)
题目链接:k-th divisor 求出N的第K大因子,满足N <= 10^15,K <= 10^9 直接暴力…… #include <bits/stdc++.h> using ...
- Network | HTTP protocol
版本 HTTP/1.0这是第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用,特别是在代理服务器中. HTTP/1.1当前版本.持久连接被默认采用,并能很好地配合代理服务器工作.还支持以管道 ...