zoukankan      html  css  js  c++  java
  • 把接口和实现分开的方法

    假定接口类为A,而将实现放在Impl类中,由于非指针类型成员变量必须和该成员类声明放在一起,而指针类型可以不这样做,因此必须将Impl成员指针作为A的成员变量,代码如下

    Impl.h 实现类的头/实现文件,可以看到里面实现了方法operator()
    class Impl
    {
        
    public:
        
    void operator()(int nData)
        
    {
            
        }

    }
    ;
    A.h 接口类头文件,不须要包含实现类的头文件
    class Impl;

    class A
    {
        
    public:
            A();
            
            
    ~A();
            
            
    void operator()(int nData);
            
        
    private:
            Impl 
    * impl;
    }
    ;
    A.cpp 接口类的实现,需要包含实现类的头文件
    #include "A.h"
    #include 
    "Impl.h"

    A::A()
    {
        impl 
    = new Impl;
    }


    A::
    ~A()
    {
        delete impl;
    }


    void A::operator()(int nData)
    {
        (
    *impl)(nData);
    }



    Main.cpp 主函数,只需要包含接口类头文件即可,完全不需要知道实现类的任何东西
    #include "A.h"

    void main()
    {
        A a;
        
        a(
    0);
    }

  • 相关阅读:
    bzoj 1016 JSOI2008 最小生成树计数
    bzoj 1070 SCOI2007 修车
    bzoj 1042 HAOI2008 硬币购物
    bzoj 1132 POI2008 Tro
    bzoj 1227 SDOI2009 虔诚的墓主人
    bzoj 1024 SCOI2009 生日快乐
    1103 POI2007 大都市meg
    bzoj 1009:[HNOI2008]GT考试
    noip2006T1 能量项链
    bzoj 1006: [HNOI2008]神奇的国度
  • 原文地址:https://www.cnblogs.com/cutepig/p/1412534.html
Copyright © 2011-2022 走看看