当前位置:  开发笔记 > 编程语言 > 正文

C++标头 - 接口和实现细节之间的分离

如何解决《C++标头-接口和实现细节之间的分离》经验,为你挑选了2个好方法。

我程序中的一个类使用了一些第三方库.Library对象是我的类的私有成员:

// My.h
    #include <3pheader.h>

    class My 
    {
    ...
    private:
       3pObject m_object;
    }

这个问题 - 我的程序中使用My类的任何其他单元都应配置为包含3p标头.移动到另一种3p将危及整个构建...我看到两种方法来解决这个问题 - 一种方法是将3pObject extern转换为m_Object并将其转换为指针,在构造函数中初始化; 第二是创建一个"接口"和"工厂"类并导出它们......

你能建议另一种解决方法吗?



1> 小智..:

私有实施(PIMPL)模式:

http://www.codeproject.com/KB/tips/PIMPL.aspx

基本上,您定义您的类包含指向您转发声明的结构的指针.然后在cpp文件中定义struct,并使用类中的构造函数和析构函数来创建/删除PIMPL.

:)



2> 1800 INFORMA..:

使用"pimpl"成语:

// header
class My
{
  class impl;
  std::auto_ptr _impl;
};

// cpp
#include <3pheader.h>
class My::impl
{
  3pObject _object;
};

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有