zoukankan      html  css  js  c++  java
  • 关于数据同步,窗口同步之类

    最近经常遇到关于数据同步或者说窗口同步之类的问题。比如在对话框A中,点击按钮之后弹出对话框B。在对话框B做了某个操作之后,对话框A想立即知道或者知道之后做出某些反应。对于类似这样的问题,一般第一反应应该就是想到用发消息的方式来处理,但是有时候用发消息这种方式会很麻烦,特别是这两个对话框不在一个项目中,或者他们都只是很底层的一个对话框的时候。这个时候可以用C++中类的继承,多态来解决这个问题。大致的思路如下:

    1.定义一个抽象类作为基类(其实不是抽象类也行);

    1 class Base
    2 {
    3     virtual void event()=0;
    4 }

    这里的事件event就是对话框A要做出的反应

    2.定义对话框A

    class A:public Base
    {
        virtual void event(); 
    }

    这里让A继承Base,并自己写好关于event的实现,就是具体做出什么反应。

    3.定义对话框B

    class B
    {
        void event1(Base *p);
    }

    这里将基类Base的指针作为形参,在实际调用的时候将A的指针传进来即可。这个传参的过程可以放到构造函数中,也可以直接放到具体事件中。

    void B::event1(Base* p)
    {
        p->event();
    }

    这里就类似于反馈给A了,让A做出反应。

  • 相关阅读:
    【题解】【HAOI2011】Problem b
    【题解】完全平方数
    sqoop安装
    hive安装
    hbase分布式安装
    zookeeper分布式安装
    hadoop分布式安装
    zabbix proxy安装及使用
    web数据存储
    js格式
  • 原文地址:https://www.cnblogs.com/gig886/p/5028563.html
Copyright © 2011-2022 走看看