C++造引用.

#include <常用><类 A,类 D>整 引序(整 i){//K为容器类型
    静 整 I=0;(i>I)I=i;中 I++;
}//设置引用的序号.避免重复.A为类型
//通过不同的<A,D>造不同的引序.
//A为类型,D为本引用位置区间.通过A,D来区分静<类 B,整 I,类 D>B&造引(){//多加一个
    整 t=引序<B,D>(I);断定(I>=t);静 B a;中 a;
}//先类后类型//如何使I不能相同呢?<类 A,类 B,整 I,类 D>&映引(){
    中 造引<无序映<A,B>,I,D>();
}//主要是为了方便取名字.不用可恶的`->`<类 A,整 I,类 D>&量引(){
    中 造引<向量<A>,I,D>();
}<类 A,整 I,类 D>&集引(){
    中 造引<无序集<A>,I,D>();
}//D用来表示本引用放置位置
//方便造引用.
用 T=无序集<>;
类 B{//这样只能造一个引用.
    //如何限制为`B`类局部呢
    T&=集引<,0,B>(),&=集引<,1,B>();&=造引<,0,B>(),&=造引<,1,B>();
    //T&列=语;:
    空 切换(T&a,T&b){=a;=b;
        打印大小(,);
        打印();
        打印();
    }
    空 切换(&a,&b){=a;=b;
        打印大小(,);
        打印();
        打印();
    }
};

类 E{//这样只能造一个引用.
    //如何限制为`B`类局部呢
    T&=集引<,0,E>(),&=集引<,1,E>();&=造引<,0,E>(),&=造引<,1,E>();
};
构 D{
    串 s;
};
//差别是4/12,4/32的区别.
空 主(){
    T c{"啊"},d{"啊","呀"};
    B b;b.切换(c,d);
    打印("---");
    b.切换(d,c);
    串 m{"只只只"},n{"呀只"};
    打印("---");
    b.切换(m,n);
    打印("---");
    E e;
    打印(型长(B),型长(E),型长(D));
}
posted @ 2021-11-24 22:21  zjh6  阅读(67)  评论(0)    收藏  举报  来源