Форум программистов, компьютерный форум CyberForum.ru

Передача значения по ссылке - C++

Восстановить пароль Регистрация
 
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
24.10.2012, 22:37     Передача значения по ссылке #1
Даны два файла:
fun.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <math.h>
double summa(float x, float eps, double& psl, int& k) {
double s=0, sl=1/x, psl=0; int k=0;
while (fabs(sl)>=eps) {
    s=s+sl;
    psl=sl;
    sl=sl*(x*x*(2*k-1))/(-2*(k+1)*(2*k+1)*(2*k+3));
    k++;
    }
return s;
}
И main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
using namespace std;
double summa(float x, float eps, double& psl, int& k);
void main () {
setlocale (LC_ALL, "Russian");
float x, eps;
double sum;
cout<<"Введите x: ";
cin>>x;
cout<<"Введите эпсилон: ";
cin>>eps;
sum = summa(x, eps, psl, k);
cout<<"Сумма слагаемых: "<<sum<<endl<<"Последнее слагаемое, включенное в сумму: "<<psl<<endl<<"Количество слагаемых: "<<k<<endl;
getch();
}
Как в функции main получить значения psl и k, которые передаются по ссылке? В файле main.cpp выдает ошибку:"переменные psl и k не определены", а если определить, то тоже ошибка.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 22:37     Передача значения по ссылке
Посмотрите здесь:

передача параметров по ссылке C++
Передача AnsiString по ссылке C++
C++ Передача по ссылке
Передача параметра по ссылке C++
C++ Передача значения по ссылке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,913
Записей в блоге: 2
Завершенные тесты: 1
24.10.2012, 22:46     Передача значения по ссылке #2
Почитайте статьи по теме "Раздельная компиляция"
а так же
Заголовочные файлы
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
24.10.2012, 23:36  [ТС]     Передача значения по ссылке #3
Почитал, но что-то не доходит до меня

Добавлено через 32 минуты
Мне непонятно как main должна получить значения переменных psl и k, значения которых передаются по ссылке из функции summa.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.10.2012, 23:43     Передача значения по ссылке #4
Цитата Сообщение от sword7i Посмотреть сообщение
Мне непонятно как main должна получить значения переменных psl и k, значения которых передаются по ссылке из функции summa.
Объявляете переменные соответствующих типов и передаете их в функцию, после работы функции в этих переменных будут результаты работы функции.
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
24.10.2012, 23:58  [ТС]     Передача значения по ссылке #5
Цитата Сообщение от kazak Посмотреть сообщение
Объявляете переменные соответствующих типов и передаете их в функцию, после работы функции в этих переменных будут результаты работы функции.
Когда определяю данные переменные в ф-и main,
Выдает ошибку "переопределение формального параметра "num" "
"переопределение формального параметра "k" "
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,913
Записей в блоге: 2
Завершенные тесты: 1
25.10.2012, 00:03     Передача значения по ссылке #6
C++
1
2
double summa(float x, float eps, double& psl, int& k) {
double s=0, sl=1/x, psl=0; int k=0;
У Вас переопределяются переменные
C++
1
2
double psl=0; 
int k=0;
уберите их из объявления переменных:
C++
1
2
psl=0; 
k=0;
Добавлено через 1 минуту
А в функции main добавьте
C++
1
2
double psl=0; 
int k=0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2012, 00:09     Передача значения по ссылке
Еще ссылки по теме:

C++ Передача по ссылке
Передача значения переменной по ссылке C++
Передача по ссылке C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
25.10.2012, 00:09  [ТС]     Передача значения по ссылке #7
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
double summa(float x, float eps, double& psl, int& k) {
double s=0, sl=1/x, psl=0; int k=0;
У Вас переопределяются переменные
C++
1
2
double psl=0; 
int k=0;
уберите их из объявления переменных:
C++
1
2
psl=0; 
k=0;
Добавлено через 1 минуту
А в функции main добавьте
C++
1
2
double psl=0; 
int k=0;
Спасибо ОГРОМНОЕ! Помогло, я понял свою ошибку.
Yandex
Объявления
25.10.2012, 00:09     Передача значения по ссылке
Ответ Создать тему
Опции темы

Текущее время: 11:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru