Функции в разных файлах не работают должным образом

Я сделал программу, которая вызывает эту функцию. Я знаю это, потому что «Int Strength был вызван» появляется в окне вывода. Тем не менее, это не изменит значения, которые я говорю это делать.
Я хочу получить целочисленные значения из main (), затем использовать их и вернуть новые значения.
Я использую заголовочный файл, который содержит только «сила» (INT, INT, INT) «

int strength(int a, int s, int i)
{
using namespace std;
cout << "Int Strength has been called" << endl;
a = a + i;
s = s - i;
return a;
return s;
}

-2

Решение

Многочисленные ошибки. Во-первых, если вы хотите, чтобы аргументы были изменены (точнее, модификация действует вне области действия функции), вы должны передать значения по ссылке:

int strength(int &a, int &s, int &i)

Во-вторых, вы, кажется, обеспокоены return a; return s; возвращая два значения. Это не — самый первый return встретил выход из функции немедленно.

7

Другие решения

Значения изменяются только внутри функции. Переменные передаются по значению, а не по ссылке.
Используйте ссылки в качестве параметров.

 int strength(int& a, int& s, int& i)
2

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

void strength(int *a, int *s, int i)
{
using namespace std;
cout << "Int Strength has been called" << endl;
*a += i;
*s -= i;
}

Тогда назовите это так:

a = 1;
s = 2;
i = 3;

strength(&a, &s, i);
1
По вопросам рекламы [email protected]