天天看点

C++静态构实现多态

#include <常用>
元<类 M>构 A{
    空 f(){M::g();}
};

构 C{
    单 串 首,尾;
    静 空 切换(串&a,串&b){首=a;尾=b;}
    静 空 g(){
        打印(首,尾);
    }
};

空 ff(){
    串 a{"ab"},b{"cde"};
    C c;c.切换(a,b);
    A<C>e;e.f();
}
空 gg(){
    串 a{"啊啊"},b{"哈哈"};
    C c;c.切换(a,b);
    A<C>e;e.f();
}

空 主(){
    ff();gg();
}      

这里的​

​多态​

​​是​

​两个​

​​层级.

1,是​​

​A<C>​

​​中​

​C​

​​模板的多态!

2,是​​

​C.切换(a,b)​

​​引起的​

​多态​

​​!

​​

​静态构​

​​是可以实现​

​静态和动态​

​​两种层级的​

​多态​

​​.

当然,上面只是针对​​

​单线程​

​.

元<整 I,类 T>构 C{
    ...内容不变...
};//可以借助`整数I,T类型`实现`静成员`的唯一性.