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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.80
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
#1

const function - C++

29.12.2011, 20:37. Просмотров 5702. Ответов 3
Метки нет (Все метки)

Здравствуйте, совсем забыл не напомните, что меняется в функции в зависимости от расположения const:
Например:
const int const function(const i) {return i;} const;
---1-------2-------------3------------------4---
1) Насколько я помню возвращает константную перменную
2)
3)Принимает константную переменную
4)
Или 2 или 4 делает функцию константной: запрещает ей менять переменные класса, а вот что делает еще один const я не помню
Заранее спасибо за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2011, 20:37     const function
Посмотрите здесь:

Вызов const метод std::function - C++
Добрый день, #include <functional> #include <string> #include <iostream> using namespace std; class Foo { ...

Разница между объявлениями const Person p1 и Person const p1 - C++
Всем привет. Собственно весь вопрос уместился в заголовок: в чем разница между объявлениями const Person p1 и Person const p1, если...

Int* const или const int*? - C++
class A { public: A() : x(777) {} int* const GetX() { return &x; }

const - C++
объясните мне пожалуйста почему в конце объявления функций нужно писать const? точнее почему в данной ситуаций.. bool empty() const; ...

const in OOP - C++
Я абсолютно не понимаю зачем нужно const. Изменяет эта функция дату или не изменяет какая разница у нас же есть разный уровень доступа...

static и const - C++
static void A(); Что дает этот статик? Что он вообще дает? int A() const; Что дает конст в данном случае? static int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
29.12.2011, 21:40     const function #2
1 - Правильно
2 - делает константным содержимое переменной, если это указатель или массив
3 - правильно
4 - делает функцию константной
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
29.12.2011, 21:42  [ТС]     const function #3
Большое спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2011, 14:08     const function
Еще ссылки по теме:

static const? - C++
если мне нужна константа в классе, как ее лучше объявить со static или без? разница будет только в том, что со статиком мне можно будет...

'const char* ...' does not much 'const char*' ??? - C++
Доброе время суток, товарищи! Застрял на ошибке: " error: argument of type ‘const char* (person::)()’ does not match ‘const...

const переменная - C++
Вопрос по коду ниже. Насколько я знаю const переменная, это переменная по имени которой нельзя перезаписывать область памяти. Я завёл...

const int - C++
При выводе в консоль переменные имеют рандомные значения, да и инициализированы они как const int , но в //bool bMass; все равно требует...

const double * - C++
Доброго всем времени суток. Подскажите, в записи double my_func(const double *A); Константным будет указатель или массив?

static const - C++
объясните, пожалуйста, вот такую странную конструкцию (накопал в старой проге): после #include идет следующее: static const char...


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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17544 / 5782 / 370
Регистрация: 30.03.2009
Сообщений: 15,927
Записей в блоге: 26
30.12.2011, 14:08     const function #4
1 и 2. Попросту игнорируется. Поскольку в случае возврата результат нет никакой явно заданной переменной, а квалифиактор const относится либо к переменной, либо к указателю

C
1
2
3
4
const int func (void)
{
  return 0;
}
Код
$ gcc t.c -c -Wignored-qualifiers
t.c:2:11: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
3. Если ты имеешь определение (definition) функци, то это обычная const переменная (которая в нашем случае является параметром, инициализируемым извне по отношению к функции)

C
1
2
3
4
void func (const int x)
{
  x = 0;
}
Код
$ gcc t.c -c
t.c: In function 'func':
t.c:3: error: assignment of read-only location
Если ты имеешь дело с описанием (declaration) функции, то попросту игнорируется (при условии, что const относится к переменной, а не к указателю). Потому как имея на руках описание функции, ты не имеешь никакого экземпляра переменной, которую хоть как-то мог бы модифицировать

4. Есть только в Си++ и только для метода класса. Запрещает изменять поля своего класса

А вообще про const почитай раздел 4 в статье Неочевидные ответы на простые вопросы
Yandex
Объявления
30.12.2011, 14:08     const function
Ответ Создать тему
Опции темы

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