zoukankan      html  css  js  c++  java
  • 在类的外面调用类的private函数

    将基类中的虚函数定义为public,在派生类中将该虚函数定义为private,则可以通过基类指针调用派生类的private函数

    #include <iostream>
    #include <string>
    #include <memory>
    
    class BaseA
    {
        int data;
        std::string msg;
    public:
        BaseA() {
            msg="BaseA message";
        }
      
        virtual ~BaseA() {
            std::cout<<__FUNCTION__<<std::endl;
        }
    
        virtual void show_msg() {
            std::cout<<msg<<std::endl;
        }
    };
    
    class DeriveA:public BaseA
    {
        int data;
        std::string msg;
    public:
        DeriveA() {
            msg="DeriveA message";
        }
    
        ~DeriveA() {
            std::cout<<__FUNCTION__<<std::endl;
        }
    private:
        void show_msg() {
            std::cout<<msg<<std::endl;
        }
    };
    
    void UsePrivateFunc() {
        std::shared_ptr<BaseA> sptr_BaseA(new DeriveA());
        sptr_BaseA->show_msg();
    }
    
    int main(int argc,char* argv[])
    {
        UsePrivateFunc();
        return 0;
    }
    

    运行结果

  • 相关阅读:
    密码框组件
    文本框组件
    列表框组件
    复选框组件
    单选按钮组件
    nginx for windows
    Mesa 3D
    下载服务器文件到本地
    消息服务
    Redis查看已注册的提供者消费者信息
  • 原文地址:https://www.cnblogs.com/smallredness/p/11014958.html
Copyright © 2011-2022 走看看