4. using namespace std; 5.
6. #define MAXTEMPSIZE 256 7.
8. class myString 9. { 10. public: 11. myString() 12. {
13. m_nLen = 4;
14. m_str = new char[ m_nLen + 1 ];
15. strcpy_s( m_str, strlen( \ ) + 1, \\ );
16. num_string++;
17. cout << \:\ << endl; 18. }
19. myString( char* str ) 20. {
21. m_nLen = strlen( str );
22. m_str = new char[ m_nLen + 1 ]; 23. strcpy_s( m_str, m_nLen + 1, str ); 24. num_string++;
25. cout << \:\ << endl; 26. }
27. myString( const myString& rString ) 28. {
29. m_nLen = strlen( rString.m_str ); 30. m_str = new char[ m_nLen + 1 ];
31. strcpy_s( m_str, m_nLen + 1, rString.m_str );
32. num_string++;
33. cout << \rString ):\ << endl; 34. }
35. ~myString() 36. {
37. if ( m_str ) 38. {
39. cout << \:\ << m_str << endl;
40. delete[] m_str; 41. }
42. num_string--;
43. cout << \:\ << endl; 44. }
45. static int HowMany() 46. {
47. return num_string; 48. }
49. inline int length() const 50. {
51. return m_nLen; 52. }
53. myString& operator= ( const myString& rString ) 54. {
55. if ( this == &rString ) 56. {
57. return *this; 58. }
59. m_nLen = rString.m_nLen; 60. m_str = new char[ m_nLen + 1 ];
61. strcpy_s( m_str, m_nLen + 1, rString.m_str );
62. num_string++;
63. cout << \t myString& rString ):\ << endl; 64. return *this; 65. }
66. myString& operator= ( const char* str ) 67. {
68. m_nLen = strlen( str );
69. m_str = new char[ m_nLen + 1 ]; 70. strcpy_s( m_str, m_nLen + 1, str ); 71. num_string++;
72. cout << \or= ( const char* str ):\ << endl; 73. return *this; 74. }
75. char& operator[] ( int i ) 76. {
77. return m_str[ i ]; 78. }
79. const char& operator[] ( int i ) const 80. {
81. return m_str[ i ]; 82. }
83.
84. friend ostream& operator<< ( ostream& os, const myString& rString );
85. friend istream& operator>> ( istream& is, myString& rString );
86. friend bool operator< ( const myString& rLeft, const myString& rRight );
87. friend bool operator> ( const myString& rLeft, const myString& rRight );
88. friend bool operator== ( const myString& rLeft, const myString& rRight ); 89. private: 90. int m_nLen; 91. char* m_str;
92. static int num_string; 93. }; 94.
95. int myString::num_string = 0; 96.
97. ostream& operator<< ( ostream& os, const myString& rString ) 98. {