美文网首页
完全隐藏类

完全隐藏类

作者: 君子亮剑 | 来源:发表于2017-04-01 18:12 被阅读0次

平常我们一般都是把类的声明放到头文件中,实现文件里面对类的成员函数进行实现,如果别人调用,只需给调用者头文件(而不需要实现过程)从而隐藏了类的实现,但是,如果我们想把整个类都隐藏掉,那我们该怎么办呢?呵呵,看下面代码

//base.h
#ifndef BASE_H
#define BASE_H
class Base
{
     private:
        static Base *s_instance;
     public:
        virtual void func() = 0;
        virtual ~Base();
        static Base* getInstance();
};

//base.cpp
#include "base.h"
#include <iostream>
using namespace std;
Base* Base::s_instance = NULL;
Base::~Base()
{
}
class Hide : public Base
{
      public:
          void func()
          {
                std::cout << "call Hide::func" << std::endl;
          }
};

Base* Base::getInstance()
{
      if(!s_instance)
      {
          s_instance = new Hide();
      }
      return s_instance;
}

//main.cpp
#include "base.h"
int main()
{
      Base *base = Base::getInstance();
      //我们在这里通过多态来调用Hide的成员函数
      base->func();
}
 

通过上面的代码,大家估计有些感觉了,呵呵,在main.cpp 中,我们没用包含任何Hide类的信息(哪怕是头文件),但是却通过base来实现Hide的所有功能,这就完完全全的隐藏了Hide的声明和实现。

相关文章

  • 完全隐藏类

    平常我们一般都是把类的声明放到头文件中,实现文件里面对类的成员函数进行实现,如果别人调用,只需给调用者头文件(而不...

  • Java 15 新特性:隐藏类

    什么是隐藏类 隐藏类,是一种不能被其他类直接使用的类。引入隐藏类的主要目的是给框架来使用,使得框架可以在运行时生成...

  • Super关键字

    如果在子类里定义了与父类已有变量同名的变量,那么子类定义的变量会隐藏父类的变量,注意:不是完全覆盖,因此系统在创建...

  • 隐藏类 Singleton

    Android 中有两类API,不能通过SDK访问。 com.android.internal 中的API,称之为...

  • 隐藏和覆盖、多态、虚函数【C++】

    【C++】隐藏和覆盖 隐藏: overhide 派生类中隐藏了基类中所有的同名函数 ①同名、不同参 ②继承关系下的...

  • 软键盘显示隐藏Util类

    软键盘显示隐藏Util类 SoftkeyboardUtil.java 一个显示隐藏软键盘工具类

  • iOS --以 '类族模式' 隐藏实现细节(8)

    以 '类族模式' 隐藏实现细节 '类族' 是一种很有用的模式 (也叫做 '类别方法'), 可以隐藏 '抽象基类 '...

  • 会议

    1标签 选一集,添加即可。然后二级小标签。 2 有标签奖励。有提示。单父类完全嵌套。三级标签,隐藏一集。一集类选择...

  • 第9条:以“类族模式”隐藏实现细节

    “类族”可以隐藏“抽象基类”背后的实现细节。可以灵活应对多个类,将它们的实现细节隐藏在抽象基类后面,以保持接口简介...

  • [陈宗权C++]C++第5天AM--运算符重载_继承

    参考: 重点: 子类可以改写来自父类的成员,隐藏来自父类的同名成员,只要同名,就能隐藏,参数表不同,也能隐藏!!!...

网友评论

      本文标题:完全隐藏类

      本文链接:https://www.haomeiwen.com/subject/yqziottx.html