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类型`实现`静成员`的唯一性.

这样,就不是同一个静态构单线程的不同时刻工作,而是多线程可用不同静态构单独的工作,因而是非常不错的.相当于前者是单线程版.后者是多线程版.

posted @ 2022-10-25 17:36  zjh6  阅读(21)  评论(0)    收藏  举报  来源