Клас String з використанням операції new

Операція new часто використовується в конструкторах класів. Для прикладу ми модифікуємо клас String, з яким працювали, вивчаючи перезавантаження операцій. Ми можемо усунути можливий дефект цього класу, що виникає, коли всі його об’єкти займають однакову кількість пам’яті: при цьому замалі рядки даремно витрачають пам’ять, а завеликі можуть не поміститися. В програмі 20.16 ми використаємо операцію new для виділення точної кількості пам’яті.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

#include<string.h>

class String

{private:

char* str;

public:

String(char* s)

{int length=strlen(s);

str=new char[length+1];

strcpy(str,s);

}

~String()

{cout<<”Видалення рядка\n”;

delete[]str;

}

void display()

{cout<<str<<endl;

}

};

///////////////////

int main()

{clrscr();

String s1=”Пробна фраза”;

cout<<”s1=”;

s1.display();

return 0;

}

Програма 20.16

 

(Зверніть увагу, що повністю результат роботи програми можна оглянути, тільки завершивши її і перейшовши у вікно користувача).

Клас String має тільки одне поле str, що є вказівником на char. Він буде вказувати на рядок, що міститься в об’єкті класу String. Тут не буде масиву, який містить рядок. Рядок зберігається в іншому місці, а клас String містить лише вказівник на нього.

 








Дата добавления: 2015-08-26; просмотров: 668;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.