Advertisement
AaronThomsen

Untitled

Mar 13th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. template <class T> class DataWrapper;
  6. template <class T> ostream& operator << (ostream& out, const DataWrapper<T>& d);
  7.  
  8. template <class T>
  9. class DataWrapper{
  10. private:
  11. T data;
  12. public:
  13. friend ostream& operator << <T>(ostream& out, const DataWrapper<T>& d);
  14. };
  15.  
  16. template <class T>
  17. ostream& operator << (ostream& out, const DataWrapper<T>& d){
  18. return out << d.data;
  19. }
  20.  
  21. template <class T>
  22. DataWrapper<T>::DataWrapper(T d) : data(d){}
  23.  
  24. int main(){
  25. DataWrapper<int> intWrapper(5);
  26. DataWrapper<char> charWrapper('a');
  27. DataWrapper<string> stringWrapper("Hello!");
  28.  
  29. cout << intWrapper << endl;
  30. cout << charWrapper << endl;
  31. cout << stringWrapper << endl;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement