博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++不要虚函数代替虚函数
阅读量:5230 次
发布时间:2019-06-14

本文共 763 字,大约阅读时间需要 2 分钟。

#include <iostream>

using namespace std;

template<typename Derived>

class SegBase
{
public:
 //流程框架

 void segment()

 {
  for (int i = 0; i < 2; i++)
  {
   deal(); //流程内的某个核心部件函数
  }
 }

 void deal_default()

 {
  cout << "Use SegBase default" << endl;
 }

 void deal()

 {
  static_cast<Derived*> (this)->deal();
 }
};

class Seg : public SegBase<Seg>

{
public:

 void deal()

 { //Seg改写deal函数
  cout << "Use Seg modified " << endl;
 }
};

class Seg2 : public SegBase<Seg2>

{
public:
 typedef SegBase<Seg2> Base;

 void deal()

 { //Seg2复用SegBase的默认deal函数
  Base::deal_default();
 }
};

void run()

{
 //Seg seg;
 //seg.segment();

 Seg2 seg2;

 seg2.segment();
}

int main(int argc, char *argv[])

{
 run();
 int test;
 cin >> test;
 return 0;
}

转载于:https://www.cnblogs.com/ganquanfu2008/archive/2013/06/05/3119523.html

你可能感兴趣的文章
C#编程时应注意的性能处理
查看>>
Fragment
查看>>
比较安全的获取站点更目录
查看>>
苹果开发者账号那些事儿(二)
查看>>
使用C#交互快速生成代码!
查看>>
UVA11374 Airport Express
查看>>
P1373 小a和uim之大逃离 四维dp,维护差值
查看>>
NOIP2015 运输计划 树上差分+树剖
查看>>
P3950 部落冲突 树链剖分
查看>>
读书_2019年
查看>>
读书汇总贴
查看>>
微信小程序 movable-view组件应用:可拖动悬浮框_返回首页
查看>>
MPT树详解
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
前端各种mate积累
查看>>
jQuery 1.7 发布了
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>