// @topic T070m11d07x10 class DString -- copy constructor, destructor, assignment op // @brief class DString declaration // DString.h #ifndef DSTRING_H_INCLUDED #define DSTRING_H_INCLUDED #include <iostream> class DString { // friends of this class have access to all private members of this class: friend std::ostream& operator<<( std::ostream& cout, DString const& str ); friend std::istream& operator>>( std::istream& cin, DString& str ); // data members static const size_t INITIAL_CAPACITY = 1; char* m_array; size_t m_length; // logical length of the string size_t m_capacity; // current capacity of the object public: // constructors, assignment, and destructor DString(); DString( char const* pstr ); DString( DString const& another ); // copy constructor DString const& operator=( DString const& another ); ~DString(); // operations size_t length() const; size_t capacity() const; void allocate( size_t capacity ); };//class DString std::ostream& operator<<( std::ostream& cout, DString const& str ); std::istream& operator>>( std::istream& cin, DString& str ); #endif //DSTRING_H_INCLUDED