-
一种迫使子类实现相关方法的技巧 - [C++]
2007-07-13
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://morningsun.blogbus.com/logs/6659730.html
子类所需的公共操作常常被上提到父类中实现,父类的方法往往会回调子类方法实现多态。这就要求在子类中提供该方法的不同实现。根据不同的需求,父类中可以提供该方法的默认操作,也可以不提供。这就对类结构的设计提供了不同的要求。
父类中方法不可以被访问,而且不提供默认实现的方法如下,可以迫使子类实现相关方法,另外父类的方法对外不可见:
4 class base
5 {
6 public:
7 void wrapGet() {get();}
8 private:
9 virtual void get() = 0;
11
12 };
13
15 class drived: public base
16 {
17 public:
18 void get(){std::cout << "This is dri class" << std::endl;}
19 };随机文章:
Boost Unit test framework 2007-07-04Point Traits -- 用以在编译期确定是否指针型别 2006-12-19B.S 举的一个结合Generic和OO两种设计思维的经典例子(CC) 2006-12-05使用dtor避免内存泄露 2006-12-04封装stringstream的优雅函数,摘自Boost 2006-11-27
收藏到:Del.icio.us







