fork(2) download
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdlib>
  4. #include <cstring>
  5.  
  6. class StrStrTest
  7. {
  8. public:
  9. StrStrTest(const std::string& ba)
  10. {
  11. a = (char*)calloc(1, ba.length() + 1);
  12. strcpy(a, ba.c_str());
  13. }
  14.  
  15. virtual ~StrStrTest()
  16. {
  17. free(a);
  18. }
  19. private:
  20. char* a;
  21.  
  22. friend std::basic_ostream<char>& operator << (std::basic_ostream<char>& ss, const StrStrTest& a);
  23. friend std::basic_istream<char>& operator >> (std::basic_istream<char>& ss, const StrStrTest& a);
  24. };
  25.  
  26. std::basic_ostream<char>& operator << (std::basic_ostream<char>& ss, const StrStrTest& a)
  27. {
  28. ss << a.a;
  29. return ss;
  30. }
  31.  
  32.  
  33. std::basic_istream<char>& operator >> (std::basic_istream<char>& ss, const StrStrTest& a)
  34. {
  35. ss >> a.a;
  36. // a.a = NULL;
  37. return ss;
  38. }
  39.  
  40. int main()
  41. {
  42. StrStrTest bb("foo");
  43. std::cin >> bb;
  44. std::cout << bb;
  45. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
foo