天天看點

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類型`實作`靜成員`的唯一性.