代码之家  ›  专栏  ›  技术社区  ›  Dmitry Khalatov

C++标题——接口和实现细节之间的分离

  •  5
  • Dmitry Khalatov  · 技术社区  · 16 年前

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

    // My.h
        #include <3pheader.h>
    
        class My 
        {
        ...
        private:
           3pObject m_object;
        }
    

    这个问题-我的程序中使用我的类的任何其他单元都应该配置为包含3p头。转移到另一种3p将危及整个构建。。。

    你能提出另一种解决方法吗?

    3 回复  |  直到 16 年前
        1
  •  13
  •   user19302 user19302    16 年前
        2
  •  10
  •   1800 INFORMATION    16 年前

    // header
    class My
    {
      class impl;
      std::auto_ptr<impl> _impl;
    };
    
    // cpp
    #include <3pheader.h>
    class My::impl
    {
      3pObject _object;
    };
    
        3
  •  0
  •   shoosh    16 年前

    QT 使用私有实现类完成。
    你可以在上面找到一个关于如何正确操作的好参考。