2013-02-19 6 views
1

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

void function(variable_name, double computing_value) 
    { 
    variable_name *= computing_value; 
    } 

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

+0

Вы можете передавать по ссылке или по значению указателя и изменять значение внутри функции. То, что у вас там, является незаконным, поскольку имя переменной не имеет типа. –

+0

да я знаю, что это было бы смешно, если бы это сработало вот так ^^ –

ответ

3

Вы хотите ссылочный тип:

void function(double& variable_name, double computing_value) 
{ 
    variable_name *= computing_value; 
} 

Здесь я предполагал, что variable_name должен быть double. Тип ссылки позволяет передать аргумент функции без его скопирования. То есть, variable_name будет ссылки на объект, который был передан в

. Примечание: не путайте & в типе как «адрес» оператор. Это не. Это два разных значения для & в C++. Здесь мы используем его для ссылочного типа.

+0

ОК спасибо: D я не думал, что это было так просто ... –

1

В C++ вам больше не нужны указатели для изменения параметра. Вы можете использовать ссылку вместо:

void function(T &t, T y) { // Where T is the type of your argument. 
    t *= y; 
} 

В этом случае параметр y будет скопирован, но не t. Поскольку он передается по ссылке, копия не требуется; вы действуете на самом объекте.

Смежные вопросы