Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Передача параметров по ссылке.




 

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

А если результатов работы вызываемой функции больше чем одно?

В этом случае можно воспользоваться параметрами, передаваемыми по ссылке. Параметры по ссылке указываются в списке формальных параметров как и параметры, передаваемые по значению, через запятую, и их может быть указано столько, сколько надо вернуть результатов - много.

Что же это за параметры? Для этого изучим новый производный тип – ссылка на тип

 

 

 

Имя типа «ссылка на тип» составляется из имени_типа и символа '&', например:

int&           float&       char&

Говорят «ссылка на int», «ссылка на   float», «ссылка на char».

Этот тип определяет не новый объект, а новое альтернативное имя уже существующего объекта. Этот тип не создает новый объект, а уже созданному объекту дает второе имя.

Сначала всегда определяется объект нужного типа и только после этого можно создать ссылку на этот же тип (ссылка не может изменить тип именуемого объекта) и инициализировать его именем объекта, которому ссылка задает второе имя. Ссылка всегда должна быть инициализирована!

Создадим следующие объекты инструкциями их определения:

int   a = 3, b = 4;

float f;

 char s1,s2;

  Объектам a, f, и s2 определены (даны) новые имена в следующих инструкциях:

      

int& aNew = a;

 float& F = f;

 char& ss2 = s2;

Теперь к этим объектам можно обратиться по любому из двух имен. Обращения будут равносильны.

aNew = b; f = 1.77; F = f - 1; ss2 = ‘ w‘; s1 = s2;

Так использовать ссылки – экзотика. Да и зачем?  Свойства  и возможности ссылок на тип чаще всего используют в списке формальных параметров функции для организации обмена данными.  

 

 

Рассмотрим задачу – пример 2, сделав другую реализацию уже рассмотренной задачи.

 

Составить функцию countX, которая, получив а, b и с  через параметры по значению, вычисляет х и возвращает результат его вычисления через параметр по ссылке (откажемся от уже рассмотренной возможности возвращать результат через возвращаемое значение).

 

 

В функции main ввести значения a,  , . Используя функцию countX, вычислить значение X и выдать на экран.

 

 

 

В функции main не использовать стандартные математические функции.

 

Для того, чтобы вычислить требуемый результат, функция countX должна получить с по значению три параметра а, b и с, тип каждого значения float. В этой реализации функция результат вернет не через возвращаемое значение, тип которого теперь void. В списке ее формальных параметров появляется параметр x, тип которого float&.

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

 


                                    float а

     

               float b                    void

                   

               float c


               float& x

Заголовок функции countX, реализуемой в таком виде,  должен быть таким:

float countX (float a, float b, float c, float& x)

 

 

Файл example3.cpp

Define _USE_MATH_DEFINES

#include <math.h>

#include <iostream>

#include <conio.h>

using namespace std;

void countX (float a, float b, float c, float& x)

{

x= (a * cos(b + c) - b * sin(a + c)) / (pow(a,3) + b * b);





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


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 225 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2841 - | 2777 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.