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

1 ... 171 172 173 [ 174 ] 175 176 177 ... 227


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

char *p; .:.). .. , i -. i . .:. ..;-.i, ;

int len;

public: - . -. 14 n-.i.*

strtype(char *ptr);

-strtype (); - - . -

voi () ;

strtype: :strtype (char *ptrl

{

len = strlen(ptr);

p = ne [len +1];

Milp) { V

cou< Ошибка выделения памятиХп ;

exitdJ;

strcpy(p, ptr) ;

strtype::-strtype() 1

cou-- Освобождение памяти по аесу p\n ; delete p;

void strtype:;show!) {

cou << p - длинам len; cout \n ;

int main 0 (

strtype Это поверка ) Мне нравится C++ );

si.show О; s2.show();

return 0;

ГЛАВА 5

Повторение пройденного

1. Сс1лк - это особый тип указателя, который разыменовывается автоматически. Сс1лка в инструкциях может использоваться точно так же, как объект,



Приложение В. Ответы н нт упражнений 529

на который она указывает. Имеются три вида ссылок: ссылка может быть параметром, сстлка может быть возвращаемым значением функции и, кроме этого, ссылка может быть независимой. Самыми важными являются ссылка в качестве параметра и ссылка в качестве возвращаемого значения функции.

2. ftinclude <i03tream> using namespace std;

int mainO

float *f; int i;

f = new float; i = new int;

if I I !i) I . ,-.

cout << Ошибка выделения памятиХп ;

return 1; . .

}

*f = 10.101; . . . . .

*i= 100; -

cou *f *i \n;

delete f; delete i;

return 0;

3. Здесь показана основная форма оператора new, используемая для инициализации динамических переменных:

ука.заавль яа пврв1Мвнну1п д*гру:и!<{ве эначенив) ;

Напримерв следующем фрагменте выделяется память для целого и этому целому присваивается значение 10:

int *р;

р = new int (10) ;

4. ftinclude <iostream> > .using namespace std;

class samp {

int x ; public:

samp (int n) { x = n; }



530 . - . Самоучитель,....C+ +

in Х() I return x; } :%b.,> -.,fiJL,. .

int raaint) .j .

samp АГ10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } ; - j

int i;

for(i=0; i<10; cout A[ i] .getx ( ) << ; .>

cout \n ; I

return 0;

)

5. Достоинства: Ссылка в качестве параметра при вызове функции не приводит к появлению копии объекта. Передача параметра по ссглке часто быстрее, чем его передача по значению. синтаксис и процедуру вызова функции шлке, снижая вероятность ошибки.

Недостатки: Изменения в параметре-ссылке меняют и используемую в вызове исходную переменную, следовательно параметр-ссылка открывает возможность сторонних эффектов в вызывающей программе.

6. Нет.

7. finclude <iostreaiti> using namespace std;

voi ng unum, long order);

long n = 4 ;

long о = 2; . . .--. - -.-ifbo .--.

cou << Значее 4, увеличенное на два порядка равно ; mag (п, о) ;

cou n << \n ;

return 0;

voi ng snum, long order) ,

for(; order; orde num um * 10;



1 ... 171 172 173 [ 174 ] 175 176 177 ... 227

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