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

как мне определить правильно параметры процедуры, чтобы с меняло свое значение - C++

Восстановить пароль Регистрация
 
vladoscom93
25 / 25 / 5
Регистрация: 14.05.2011
Сообщений: 241
16.02.2013, 22:19     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
void strfun(int a, int b, int c)
{
    c = a + b;
}
 
int main()
{
    int a=5, b=6, c=0;
    strfun(a, b, c);
    cout << c << endl;
    cin.get();
};
проблема состоит в том как мне определить правильно параметры процедуры, чтобы с меняло свое значение... совет сделать обычную функцию которая возвращает обычно значение не подходит( пробовал делать так, но вылетают ошибки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void strfun(int a, int b, int& c)
{
    c = a + b;
}
 
int main()
{
    int a=5, b=6, c=0;
    strfun(a, b, c);
    cout << c << endl;
    cin.get();
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2013, 22:19     как мне определить правильно параметры процедуры, чтобы с меняло свое значение
Посмотрите здесь:

C++ Как переопределить функцию так, чтобы она не только могла принимать разные параметры, но и возвращать тоже разные?
как правильно создать opengl проэкт в IDE code blocks чтобы компилировался? C++
как правильно вернуть значение? C++
C++ Как правильно использовать классы? Как вывести значение класса на экран?
C++ Возможно ли создать переменную, которая после выполнения программы сохраняла бы свое значение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:22     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #2
Цитата Сообщение от vladoscom93 Посмотреть сообщение
но вылетают ошибки:
Очень о многом говорит. Написать текст ошибок и место, откуда они у тебя вылетают, есть возможность?
using namespace std сделал? iostream подключил?
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
16.02.2013, 22:26     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #3
может так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
int strfun(int a, int b)
{
  int  c = a + b;
}
 
int main()
{
    int a=5, b=6, c=0;
    c=strfun(a, b);
    cout << c << endl;
 
}
в своем коде вы вызывали функцию, да, а выводили переменную который присвоен 0.
ЗЫ а зачем передавать в функцию три параметра один из которых в итоге меняется?
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:28     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #4
Дмитрий 93, его второй код тоже правильный
vladoscom93
25 / 25 / 5
Регистрация: 14.05.2011
Сообщений: 241
16.02.2013, 22:39  [ТС]     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #5
Цитата Сообщение от Дмитрий 93 Посмотреть сообщение
может так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
int strfun(int a, int b)
{
  int  c = a + b;
}
 
int main()
{
    int a=5, b=6, c=0;
    c=strfun(a, b);
    cout << c << endl;
 
}
в своем коде вы вызывали функцию, да, а выводили переменную который присвоен 0.
ЗЫ а зачем передавать в функцию три параметра один из которых в итоге меняется?
мне для других целей надо менять значение параметров в самой процедуре, кстати мой способ заработал я просто забыл отключить старые заголовочники над которыми экспериментировал... теперь возникла друга проблема как мне быть с параметрами типа string в процедурах? как их правильно определить? пробовал так, но вылетели ошибки:
файл sum.h:
C++
1
void strfun(string& line);
файл sum.cpp:
C++
1
2
3
4
void strfun(string& line)
{
    line = "HI!";
}
файл main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string.h>
#include "sum.h"
 
using namespace std;
 
int main()
{
    string line;
    strfun(line);
    cout << line << endl;
    cin.get();
};
листинг ошибок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1>------ Построение начато: проект: comp, Конфигурация: Debug Win32 ------
1>Построение начато 16.02.2013 22:32:14.
1>InitializeBuildStatus:
1>  Обращение к "Debug\comp.unsuccessfulbuild".
1>ClCompile:
1>  sum.cpp
1>c:\users\---\desktop\проба\comp\comp\sum.cpp(1): error C2065: string: необъявленный идентификатор
1>c:\users\---\desktop\проба\comp\comp\sum.cpp(1): error C2065: line: необъявленный идентификатор
1>c:\users\---\desktop\проба\comp\comp\sum.cpp(2): error C2448: strfun: вероятно, инициализатор, использующий стиль функции, является определением функции
1>  main.cpp
1>c:\users\---\desktop\проба\comp\comp\sum.h(1): error C2065: string: необъявленный идентификатор
1>c:\users\---\desktop\проба\comp\comp\sum.h(1): error C2065: line: необъявленный идентификатор
1>c:\users\---\desktop\проба\comp\comp\sum.h(1): error C2182: strfun: недопустимое использование типа "void"
1>c:\users\---\desktop\проба\comp\comp\sum.h(1): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
1>  Создание кода...
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.51
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
из процедуры делать функцию так же не надо(
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:44     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #6
Цитата Сообщение от vladoscom93 Посмотреть сообщение
#include <string.h>
убери .h
vladoscom93
25 / 25 / 5
Регистрация: 14.05.2011
Сообщений: 241
16.02.2013, 22:52  [ТС]     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #7
Цитата Сообщение от Vourhey Посмотреть сообщение
убери .h
убрал, но проблема всеравно осталась( уже не знаю, что делать вроде бы все правильно сделал, листинг ошибок на этот раз:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1>------ Построение начато: проект: comp, Конфигурация: Debug Win32 ------
1>Построение начато 16.02.2013 22:47:46.
1>InitializeBuildStatus:
1>  Обращение к "Debug\comp.unsuccessfulbuild".
1>ClCompile:
1>  sum.cpp
1>c:\users\\desktop\проба\comp\comp\sum.cpp(1): error C2065: string: необъявленный идентификатор
1>c:\users\\desktop\проба\comp\comp\sum.cpp(1): error C2065: line: необъявленный идентификатор
1>c:\users\\desktop\проба\comp\comp\sum.cpp(2): error C2448: strfun: вероятно, инициализатор, использующий стиль функции, является определением функции
1>  main.cpp
1>c:\users\\desktop\проба\comp\comp\sum.h(1): error C2065: string: необъявленный идентификатор
1>c:\users\\desktop\проба\comp\comp\sum.h(1): error C2065: line: необъявленный идентификатор
1>c:\users\\desktop\проба\comp\comp\sum.h(1): error C2182: strfun: недопустимое использование типа "void"
1>c:\users\\desktop\проба\comp\comp\sum.h(1): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
1>  Создание кода...
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.88
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.02.2013, 22:55     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #8
В sum.h добавь хидер. Потому что на него так же жалуется, а он у тебя подключается. Тогда отсюда его можно убрать.

Добавлено через 1 минуту
Не увидел сначала, что у тебя там, кроме main еще файлы есть. Ты же там тоже string используешь. А хидер не подключаешь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 23:06     как мне определить правильно параметры процедуры, чтобы с меняло свое значение
Еще ссылки по теме:

Элемент массива внезапно меняет свое значение, почему? C++
C++ Как правильно присвоить значение NULL
C++ Функции и процедуры и их параметры

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

Или воспользуйтесь поиском по форуму:
vladoscom93
25 / 25 / 5
Регистрация: 14.05.2011
Сообщений: 241
16.02.2013, 23:06  [ТС]     как мне определить правильно параметры процедуры, чтобы с меняло свое значение #9
все заработало)) пришлось в sum.cpp прописать #include "sum.h" а в sum.h #include <string> и using namespace std;
Yandex
Объявления
16.02.2013, 23:06     как мне определить правильно параметры процедуры, чтобы с меняло свое значение
Ответ Создать тему
Опции темы

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