Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- template <class T> class DataWrapper;
- template <class T> ostream& operator << (ostream& out, const DataWrapper<T>& d);
- template <class T>
- class DataWrapper{
- private:
- T data;
- public:
- friend ostream& operator << <T>(ostream& out, const DataWrapper<T>& d);
- };
- template <class T>
- ostream& operator << (ostream& out, const DataWrapper<T>& d){
- return out << d.data;
- }
- template <class T>
- DataWrapper<T>::DataWrapper(T d) : data(d){}
- int main(){
- DataWrapper<int> intWrapper(5);
- DataWrapper<char> charWrapper('a');
- DataWrapper<string> stringWrapper("Hello!");
- cout << intWrapper << endl;
- cout << charWrapper << endl;
- cout << stringWrapper << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement