//智能指针应用于桥接模式的例子
// smart_ptr.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <vld.h>
#include <Windows.h>
#include "Sample.h"
int _tmain(int argc, _TCHAR* argv[])
{
CSample sample;
sample.Print();
system("pause");
return 0;
}
//sample.h
#pragma once
#include "boost//smart_ptr.hpp"
#include "boost//make_shared.hpp"
using namespace boost;
class CSample
{
public:
CSample(void);
~CSample(void);
void Print();
private:
class CBridge;
//私有智能指针(CBridge类型)
shared_ptr<CBridge> m_bridge;
};
//sample.cpp
#include "StdAfx.h"
#include "Sample.h"
#include <iostream>
using namespace std;
class CSample::CBridge
{
public:
CBridge()
{
}
void BridgePrint()
{
cout<< "BridgePrint"<< endl;
}
};
//CSample::CSample():m_bridge(new CBridge)
CSample::CSample()
{
m_bridge = boost::make_shared<CBridge>();
}
CSample::~CSample(void)
{
}
void CSample::Print()
{
m_bridge->BridgePrint();
}