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

  • 相关阅读:
    MySQL数据库(2)
    mysql数据库(1)
    python是动态语言
    元类
    Django 全文检索
    Django 分页的实现
    FastDFS分布式存储服务器的使用
    FastDFS分布式存储服务器安装
    Django 获取用户历史浏览记录(基于Redis缓存)
    LoginRequiredMixin类的使用
  • 原文地址:https://www.cnblogs.com/cutepig/p/1412534.html
Copyright © 2011-2022 走看看