Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

программирование на C++

azri araaq Профи (663), на голосовании 12 лет назад
объясните действие функции...
в качестве параметра передаётся объект... но почему знак ссылки стоит после него а не перед?
void ArriveAtFloor( Floor & );
Голосование за лучший ответ
Mikhail Levin Искусственный Интеллект (615395) 12 лет назад
это не объект, это тип.

по идее должно быть что-то вроде:
void ArriveAtFloor( Floor & z);

тип аргумента должен быть, но если в функции он реально не используется - сам аргумент можно и опустить (но тип - останется)
Капитан Гугл Искусственный Интеллект (146199) 12 лет назад
Это означает, что аргумент в функцию передается не по значению, а по ссылке. На примере легче показать:
void f1(int a){a++;}
void f2(int& a){a++;}
void main()
{
int n=1;
f1(n);
printf("%d\n",n);//очевидно, выведет 1: f1 не изменяет значение параметра
f2(n);
printf("%d\n",n);//выведет 2: f2 получает не значение n, а ссылку на него - и, соответственно, меняет.
}
Похожие вопросы