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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
#1

Имена формальных и фактических параметров должны отличаться? - C++

18.11.2014, 22:06. Просмотров 288. Ответов 5
Метки нет (Все метки)

Здравствуйте.
В институте преподаватель сказала, что "Имена фактических и формальных параметров не должны совпадать", причем обязательно так делать во всех лабораторных.
Я не могу понять, какой в этом смысл? На вопросы она начала злиться и ничего не ответила.
Насколько я понимаю, в си/с++ в этом нет смысла и можно называть параметры одинаково? А она просто перепутала с каким-то другим языком.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 22:06     Имена формальных и фактических параметров должны отличаться?
Посмотрите здесь:

В каких методах фактических параметров (аргументов) больше, чем формальных? - C++
подскажите, в каких методах фактических параметров(аргументов) больше чем при их описании? например перегруженный оператор присваивания

Список формальных параметров в функции - C++
Не понимаю цель формальных параметров. Зачем, например, вводить (int a, int b) в функции int summ(int a,int b) { Return a+b; } ...

Несоответствие в списке формальных параметров - C++
Ошибка 1 error C2563: несоответствие в списке формальных параметров (17 строка) #include "stdafx.h" #include <iostream> #include...

Использование функций в качестве формальных параметров - C++
Помогите вычислить f(x)/g(x), где в качестве f(x) и g(x) могут быть четыре различные функции, возвращающие вещественные значения

Как понять список формальных параметров функции Bar? - C++
class Foo { void friend Bar(Foo & foo); private: int data;

Ошибка в калькуляторе "Несоответствие в списке формальных параметров" - C++
такая ситуация: второй день учу с++, до этого ничего не учил, поэтому прошу помощи. Пытался написать калькулятор: #include <iostream> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3695 / 1970 / 514
Регистрация: 18.10.2014
Сообщений: 3,557
18.11.2014, 22:15     Имена формальных и фактических параметров должны отличаться? #2
Цитата Сообщение от koka3000 Посмотреть сообщение
"Имена фактических и формальных параметров не должны совпадать"
А что вообще означает эта фраза?

Традиционно "формальными параметрами" называют собственно локальные параметры функции. А "фактическим параметрами" называют аргументы, указываемые при вызове функции.

У аргументов в общем случае вообще нет никаких имен. Аргументы - это выражения. Например

C++
1
2
3
4
5
6
7
8
void foo(int a, int b)
{
   ...
}
 
...
int x = 4;
foo(2 + 3, x + 1);
Формальными параметрами являются 'a' и 'b' внутри функции, а фактическим параметрами (аргументами) для них в данном случае являются '2 + 3' и 'x + 1'. О каким "именах" фактических параметров вообще может идти речь в этом примере?

Все, что мне приходит в голову это попытка запретить что-то вроде

C++
1
2
int a = 1, b = 2;
foo(a, b);
Но зачем это запрещать? Это же бред.
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
18.11.2014, 22:33  [ТС]     Имена формальных и фактических параметров должны отличаться? #3
TheCalligrapher, насколько я понимаю, вот что она имела ввиду:

void function(int aName);

int main(int argc, char **argv) {
...
}

void function(int name) {
...
}

вначале назвали aName, а потом name, только какой в этом смысл..
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
18.11.2014, 22:57     Имена формальных и фактических параметров должны отличаться? #4
C++
1
2
3
4
5
6
void f(int a); <--- a - формальный параметр
...
int main() {
int b = 10;
f(b); <--- b - фактический параметр
}
ответ: нет
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3695 / 1970 / 514
Регистрация: 18.10.2014
Сообщений: 3,557
18.11.2014, 23:32     Имена формальных и фактических параметров должны отличаться? #5
Цитата Сообщение от koka3000 Посмотреть сообщение
вначале назвали aName, а потом name, только какой в этом смысл
Ну уж, извените...

Во-первых, это, мягко выражаясь, очень нетрадиционное толкование терминов "формальный" и "фактический параметр". А во-вторых, за использование разных имен в таких случаях надо сильно бить по рукам.

Указывать имена параметров в объявлении функции (прототипе) не обязательно. И лучше их вообще не указывать, чем указывать разные.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 04:05     Имена формальных и фактических параметров должны отличаться?
Еще ссылки по теме:

Чем могут отличаться формальные параметры функции от ее аргументов? - C++
Если кто знает может помочь ответить на вопросы. Заранее спасибо 1 . Чем могут отличаться формальные параметры функции от ее аргументов ?...

О формальных параметрах - C++
Вопрос вот в чем, возможно ли в С++ объявить формальный параметр так , чтоб при подстановке вместо него фактического, в процессе выполнения...

неизвестныйе символ-в формальных параметрах!Почему я же указал тип .? - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop ...

не получается написать перегруженную функцию, которая возвращает значение в зависимости от набора формальных - C++
Которая возвращает значение в зависимости от набора формальных параметров:z=min(x,y)для 3 типов параметра x:int, float; double Я начал...


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

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
19.11.2014, 04:05     Имена формальных и фактических параметров должны отличаться? #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от koka3000 Посмотреть сообщение
На вопросы она начала злиться и ничего не ответила.
Дама пришла из Паскаля.

В С/С++ это не нужно и даже вредно с точки зрения читабельности кода.
Разве что - будут глобальные переменные. Тогда может получиться нехорошо. Потому глобальные переменные - тоже нехорошо.
Yandex
Объявления
19.11.2014, 04:05     Имена формальных и фактических параметров должны отличаться?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru