• 关于数据同步,窗口同步之类


    最近经常遇到关于数据同步或者说窗口同步之类的问题。比如在对话框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做出反应。

  • 相关阅读:
    selenium1-安装
    jmeter9-图形监控
    InetAddress.getLocalHost().getHostAddress() 在macOS里面反应很慢
    自定义实现简易定时任务
    Redis性能监控
    Linux启动进程、线程数量查看及修改方式
    jmeter处理request和response
    centos安装netdata
    scp使用expect自动输入密码
    Linux系统下生成TPS,ResponseTime曲线图
  • 原文地址:https://www.cnblogs.com/gig886/p/5028563.html
Copyright © 2020-2023  润新知