构 可串构{//三个
    显 可串构(常 符*s){串 n=s;切换(n);}
    显 可串构(*s){串 n=s;切换(n);}
    显 可串构(&s){切换(s);}
    显 可串构(){}//必须加上.否则要报错
    空 切换(&s){};//改成空函数,可隐藏父的函数
};//继承,再加上(用 可串构::可串构)

上面的代码是没用的.没考虑到这是构造函数.基类构造函数是不能调用子类成员的,也不能静转<子类*>,因为基类还没构造好.所以,只有:

#define 可串构(S) \
    显 S(常 符*s){串 n=s;切换(n);}\
    显 S(符*s){串 n=s;切换(n);}\
    显 S(串&s){切换(s);}\
    S(){}

//这是构造函数,没法,只有定义宏了.S为目标,不过感觉还更简单了.