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

Параметры функции - C++

Восстановить пароль Регистрация
 
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 687
30.07.2013, 19:28     Параметры функции #1
Читаю книгу увидел не понятные для меня параметры.
C++
1
int function(int ,int ,char s&);
Объясните что это за параметры, и как с ними работать в функции. И для чего нужен знак адреса в конце переменной s.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2013, 19:28     Параметры функции
Посмотрите здесь:

C++ Параметры функции
Формальные параметры в функции C++
C++ функции и параметры
Параметры функции по умолчанию C++
C++ Параметры функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
30.07.2013, 19:30     Параметры функции #2
Цитата Сообщение от Bend3r Посмотреть сообщение
как с ними работать в функции
Если у параметра есть тип, но нет имени, то никак. Бывает полезно, например, чтобы компилятор не заваливал предупреждениями о неиспользуемом параметре.
Ну и можно сделать более человекопонятное оформление:
C++
1
void foo(int /* bar */);
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
30.07.2013, 19:32     Параметры функции #3
Судя по точке с запятой в конце, это прототип функции. В нем имена параметров не обязательны.
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 687
30.07.2013, 19:36  [ТС]     Параметры функции #4
Цитата Сообщение от Schizorb Посмотреть сообщение
Судя по точке с запятой в конце, это прототип функции. В нем имена параметров не обязательны.
Точку с запитой, добавил я. Т.к нету смысла переписывать всю функцию.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
30.07.2013, 19:40     Параметры функции #5
Bend3r, если стоит точка с запятой - то это может менять назначение параметров. Если в прототипе не указаны имена аргументов, то это может много чего значить, а если же не указаны в определении ф-ции, то это значит, что ф-ция принимает параметры, но не использует их за ненадобностью.
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 687
30.07.2013, 19:42  [ТС]     Параметры функции #6
Цитата Сообщение от Dani Посмотреть сообщение
Bend3r, если стоит точка с запятой - то это может менять назначение параметров. Если в прототипе не указаны имена аргументов, то это может много чего значить, а если же не указаны в определении ф-ции, то это значит, что ф-ция принимает параметры, но не использует их за ненадобностью.
Хорошо, а смысл тогда такой функции?
Можно тогда вообще функцию без параметров делать. Смысл один и тот-же.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
30.07.2013, 19:50     Параметры функции #7
Цитата Сообщение от Schizorb Посмотреть сообщение
Судя по точке с запятой в конце, это прототип функции. В нем имена параметров не обязательны.
В определении функции тоже.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
30.07.2013, 19:52     Параметры функции #8
Bend3r, например, какой-то библиотеке нужно передавать свою функцию в качестве параметра другой функции ABC, которая должна принимать 3 параметра. Код библиотеки менять нельзя, но тебе нужно передать свою ф-цию для нормальной работы ф-ции ABC, но тебе совсем не нужен, например, 3 параметр. Поэтому ты просто указываешь этот параметр без имени.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
30.07.2013, 19:52     Параметры функции #9
Цитата Сообщение от Bend3r Посмотреть сообщение
Можно тогда вообще функцию без параметров делать. Смысл один и тот-же.
Да элементарно.

C++
1
2
3
4
5
6
7
8
9
struct Base {
    virtual void f(int a, int b, int c) = 0;
};
 
struct Derived : public Base {
    virtual void f(int /* a */, int /* b */, int /* c */) {
        // В моей реализации параметры не используются.
    }
};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2013, 19:57     Параметры функции
Еще ссылки по теме:

C++ Какими способами можно использовать функции класса B, как параметры функции Sub класса А?
Функции, параметры функций C++
C++ Параметры функции и их считывание

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

Или воспользуйтесь поиском по форуму:
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 687
30.07.2013, 19:57  [ТС]     Параметры функции #10
Цитата Сообщение от 0x10 Посмотреть сообщение
Да элементарно.

C++
1
2
3
4
5
6
7
8
9
struct Base {
    virtual void f(int a, int b, int c) = 0;
};
 
struct Derived : public Base {
    virtual void f(int /* a */, int /* b */, int /* c */) {
        // В моей реализации параметры не используются.
    }
};
Ну так у вас же явно объявлена функция virtual void f(int a, int b, int c) = 0;
В общем ладно всем спасибо! Более менее понял.
Yandex
Объявления
30.07.2013, 19:57     Параметры функции
Ответ Создать тему
Опции темы

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