Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MyString {
- private:
- char *m_data;
- int m_length;
- public:
- MyString(const char *data = nullptr, int length = 0) : m_length(length) {
- if (length) {
- m_data = new char[length];
- for (int i = 0; i < length; ++i)
- m_data[i] = data[i];
- }
- }
- ~MyString() { delete[] m_data; }
- // Перегруженное присваивание
- MyString &operator=(const MyString &str) {
- // если данные существуют в текущей строке, удалить их
- if (m_data)
- delete[] m_data;
- m_length = str.m_length;
- // копируем данные из str в неявный объект
- m_data = new char[str.m_length];
- for (int i = 0; i < str.m_length; ++i)
- m_data[i] = str.m_data[i];
- // возвращаем существующий объект, чтобы
- // можно было включить этот оператор в цепочку
- return *this;
- }
- friend std::ostream &operator<<(std::ostream &out, const MyString &s);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement