fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template <class T>
  5. class A
  6. {
  7. public:
  8. A(T a): a(a) {;}
  9. friend ostream& operator<<(ostream& os, A<T>& ob)
  10. {
  11. return os << ob.a << endl;
  12. }
  13.  
  14. T a;
  15. };
  16.  
  17. template <class T>
  18. class B
  19. {
  20. public:
  21. B(T a): a(a) {;}
  22. template <class X>
  23. friend ostream& operator<<(ostream&, B<X>&);
  24.  
  25. T a;
  26. };
  27.  
  28. template <class X>
  29. ostream& operator<<(ostream& os, B<X>& ob)
  30. {
  31. return os << ob.a << endl;
  32. }
  33.  
  34. int main()
  35. {
  36. A<int> a(10);
  37. B<int> b(20);
  38. cout << a;
  39. cout << b;
  40. return 0;
  41. }
Success #stdin #stdout 0s 2852KB
stdin
Standard input is empty
stdout
10
20