fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. class B{};
  6. class C : public B{};
  7.  
  8. template <class T>
  9.  
  10. class A {
  11. public:
  12. A (){}
  13. A(T * p) : ptr(p) {}
  14. A & operator = ( A /*&*/ & p){
  15. // swap (p.ptr, ptr ); return *this;
  16.  
  17. A temp;
  18. // temp=p;
  19. // temp.ptr=p.ptr;
  20. //return temp;
  21. temp.ptr=p.ptr;
  22. p.ptr=ptr;
  23.  
  24. return p;
  25. }
  26. void pr(){cout<<*ptr<<endl;}
  27. private:
  28. T * ptr;
  29.  
  30. };
  31.  
  32. int main(){
  33. int a=5;
  34. int *p1=&a;
  35. //A <B> pa2(new C);
  36. A <int *> pa1 (new int *(p1 ));
  37. // pa1.pr();
  38. A<int> aob1(p1);
  39. aob1.pr();
  40.  
  41. int b=6;
  42. int *p2=&b;
  43. A<int> aob2(p2);
  44. aob2.pr();
  45.  
  46. aob2=aob1;
  47. aob2.pr();
  48. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
5
6
6