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);
    }

  • 相关阅读:
    (1)MySQL初识
    ESP8266(WIFI模组)_Lua开发:环境搭建
    那些年写过的毕设论文
    单片机的心跳SysTick
    尝试
    菜单管理设计说明
    mybatis的mapper.xml中sql的用法
    powerdesigner
    Cookie
    java自定义注解
  • 原文地址:https://www.cnblogs.com/cutepig/p/1412534.html
Copyright © 2011-2022 走看看