设为首页 加入收藏

TOP

C++接口与实现分离的2种方法(一)
2013-10-17 09:04:27 】 浏览:1806
Tags:接口 实现 分离 方法

  方法一:使用另一个实现类分装类的私有成员和函数,这种方法称为Pimpl方法。

  test.h

  #pragma once

  #include "shared_ptr.hpp"

  class CTest

  {

  public:

  CTest(void);

  ~CTest(void);

  void DoSomething();

  private:

  class CTestImp;

  boost::shared_ptr<CTestImp> pimpl_;

  };

  test.cpp

  #include "Test.h"

  #include <iostream>

  class CTest::CTestImp

  {

  private:

  CTestImp(CTestImp const &){}

  CTestImp & operator=(CTestImp const &){}

  public:

  CTestImp(){}

  void DoSomething();

  };

  void CTest::CTestImp::DoSomething()

  {

  // do something.

  std::cout《"Imp class do something."《std::endl;

  }

  CTest::CTest(void)

  {

  boost::shared_ptr<CTestImp> pImp(new CTestImp);

  pimpl_ = pImp;

  }

  CTest::~CTest(void)

  {

  }

  void CTest::DoSomething()

  {

  pimpl_->DoSomething();

  }

  方法二:使用抽象类来实现接口与实现的分离。

  x.h

  #pragma once

  #include <stdio.h>

  #include "shared_ptr.hpp"

  using namespace boost;

  class X

  {

  public:

  virtual void f() = 0;

  virtual void g() = 0;

  protected:

  ~X() { printf("~X\n");}

  };

   

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用C++破解九宫格游戏 下一篇C++中各种string的相互转化

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目