fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. template<class T>class MyArray{
  6. public: T* database[20];
  7. public: T* get(int index){return database[index];}
  8. public: void set(int index,T* t){database[index]=t;}
  9. };
  10. template<class T,class T2> class Adapter{
  11. public: MyArray<T>* underlying;
  12. public: void setUnderlying(MyArray<T>* pUnder){underlying=pUnder;}
  13. public: T2* get(int index){return static_cast<T2*>(underlying->get(index));}
  14. };
  15. class B{};
  16. class C:public B{};
  17. class D:public C{};
  18. class E:public D{};
  19.  
  20. int main() {
  21. MyArray<B> bs; bs.set(0,new C());
  22. Adapter<B,C> cs;
  23. cs.setUnderlying(&bs);
  24. C* c=cs.get(0);
  25. return 0;
  26. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Standard output is empty