zoukankan      html  css  js  c++  java
  • 考虑virtual函数以外的选择

    在C++中,有四种选择可以替代virtual函数的功能:

    1.non-virtual interface(NVI)手法,这是一种template method模式。它以public non-virtual成员函数包含较低访问性的virtual函数。对于子类而言,子类只需重定义私有的virtual函数即可。

    2.将virtual函数替换为“函数指针成员变量”,这是Strategy模式的一种表现形式。这种方案的优点在于,将类和行为分离(比如相同的类的不同对象可以具有不同的行为);缺点在于,非成员函数无法访问class的non-public成员。

    3.利用tr1::function,它和方法2基本一样,除了可以接受任何的可调用物(callable entities),包括函数子、成员函数等。

    4.利用传统的Strategy模式来做。

  • 相关阅读:
    TreeMap<K,V>类
    2020-3-7学习地图
    Thread类
    Redis-Windows中注册Redis后台守护进程
    Redsi-(error) NOAUTH Authentication required.
    2020-3-6学习地图
    Collection<E>接口
    Map<K,V>接口
    Set接口
    List类
  • 原文地址:https://www.cnblogs.com/wickedpriest/p/6220289.html
Copyright © 2011-2022 走看看