Программирование >>  Расширенная версия языка c++ 

1 ... 179 180 181 [ 182 ] 183 184 185 ... 227


552 Сг.моучитель C++

cou << Нельзя копировать массивы разных размеров ! \п ; exit(l) ,-

for(i=0 ize; p[i] = ob.p[i];

return

int main I

int i;

dynarray obi (10) , ob2(10), оЬЗ(100);

Obl.pvst (3) - 10;

i = obl.getO) ; . - .

cout i

Ob2 = obi;

cout i

Выполнение слеющей инструкции ведет к ошибке obi = оЬЗ; ! ! !

return 0;

1. #include <iostream> tinclude <cstring>

#include <cstdlib> -v -

using namespace

class strtype I

char

int len; public:

cou << Освобождение памяти по адресу <<

(unsigned) p

delete []р;

cha t() I return p; }

strtype



Приложение Ответы на вопросы и решения упражнений 553

char iopGrator[] (inti); . .

strtype: : strtype{char*s)

int 1;

1 en(s} + 1;

p = new char [ 1 ] ; .

if(!p) {

cout Ошибка выделения памятиХп ; exit(l);

len = 1; .

.strcpy (p, 3} ;

У/ Присваивание объекта strtype t

Выяснение необходтюсти дополнительной памяти if (len < Qb.le.. { требуется выделение

памяти

р = new char

if(!p) f

cout i

exit(l);

len =

strcpy(p, ob.p);

return

символы в строке char Sistrtype: :operatorn (inti)

{ - . .

if (i<0 I 1 i>len-l) {

cout индекса

cout i выходит за границы

exit(l) ;

return p[i];



554 Самоучитель C++

int I

strtype а( Привет ), Ь( Здесь ); cout а.get о \п;

cout b.getO \n; ;

a b; теперь указатель р не перезаписывается

cou а. get I) \п ; cout b.getO << Vn;

Доступ к стволам посредством индексирования массива cout < а[0] а[1] а[2] \п ;

Присваивание стволов посредством индексирования массива а[0] = X; , ,.

а[1] = Y; а12] = Z;

cout

return 0;

2. #include <iostream> linclude <cstdlib>

using namespace

class dynarray I

int *p;

int size; public;

s} ;

dynarray 4operator=(dynarray Sob) ;

Конструктор

p = new int [s] ; if(!p) {

cou Обка выделения Пс1мяти\п ; exit(l);

size = s;



1 ... 179 180 181 [ 182 ] 183 184 185 ... 227

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика