Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






После вызова функция f() возвращает ссылку на переменную val. Поскольку функция f()





объявлена с "обязательством" вернуть ссылку, при выполнении строки

return val; // Возвращаем ссылку на val.

Автоматически возвращается ссылка на глобальную переменную val. Эта ссылка затем

Используется инструкцией cout для отображения значения val.

При выполнении строки

newval = f(); //Присваиваем значение val переменной newval.

Ссылка на переменную val, возвращенная функцией f(), используется для присвоения

Значения val переменной newval.

А вот самая интересная строка в программе.

f() = 99.1; // Изменяем значение val.

При выполнении этой инструкции присваивания значение переменной val становится

равным числу 99,1. И вот почему: поскольку функция f() возвращает ссылку на переменную val,

Эта ссылка и является приемником инструкции присваивания. Таким образом, значение 99,1

Присваивается переменной val косвенно, через ссылку на нее, которую возвращает функция f()

Один из способов создания ограниченного массива иллюстрируется в следующей

Программе.

// Простой способ организации безопасного массива.

#include <iostream>

Using namespace std;

int &put(int i); // Помещаем значение в массив.

int get(int i); // Считываем значение из массива.

int vals[10];

int error = -1;

Int main()

{

put(0) = 10; // Помещаем значения в массив.

put(1) = 20;

put(9) = 30;

cout << get(0) << ' ';

cout << get(1) << ' ';

cout << get(9) << ' ';

// А теперь специально генерируем ошибку.

put(12) =1; // Индекс за пределами границ массива.

Return 0;

}

// Функция занесения значения в массив.

int &put(int i)

{

if(i>=0 && i<10)

return vals[i]; // Возвращаем ссылку на i-й элемент.

else {

cout << "Ошибка нарушения границ!\n";

return error; // Возвращаем ссылку на error.

}

}

// Функция считывания значения из массива.

Int get(int i)

{

if(i>=0 && i<10)

return vals[i]; // Возвращаем значение i-го элемента.

else {

cout << "Ошибка нарушения границ!\n";

return error; // Возвращаем значение переменной error.

}

}

Date: 2016-07-25; view: 458; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию