C++责任链
2023-02-07 10:34:04 阅读次数:214
C++
#include <iostream>
using namespace std;
class Base{
protected:
Base *next;
public:
Base(Base *t){
next=t;
}
Base(){
next=NULL;
}
virtual void fun(){
if(next) next->fun();
}
virtual ~Base(){}
};
class A1:public Base{
public:
A1(Base *t):Base(t){
}
A1(){
}
void fun(){
cout<<"a1"<<endl;
Base::fun();
}
};
class A2:public Base{
public:
A2(Base *t):Base(t){
};
A2(){
}
void fun(){
cout<<"a2"<<endl;
Base::fun();
}
};
class A3:public Base{
public:
A3(Base *t):Base(t){
}
A3(){
}
void fun(){
cout<<"a3"<<endl;
Base::fun();
}
};
int main(void)
{
A3 *pb3=(A3 *)new A3();
A2 *pb2=(A2 *)new A2(pb3);
A1 *pb1=(A1 *)new A1(pb2);
pb1->fun();
return 0;
}
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_12392289/5985556,作者:机智的程序员小熊,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:5.1EF Core原理
下一篇:C# 中的数据库操作~存储过程篇Mysql SqlServer