首页 > 其他 > 详细

考虑virtual函数以外的选择

时间:2016-12-25 20:37:02      阅读:145      评论:0      收藏:0      [点我收藏+]

在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模式来做。

 

考虑virtual函数以外的选择

原文:http://www.cnblogs.com/wickedpriest/p/6220289.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!