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

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

Войти
Регистрация
Восстановить пароль
 
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
#1

Что означает идендификатор const в обьявлении функции? - C++

10.04.2013, 11:17. Просмотров 683. Ответов 7
Метки нет (Все метки)

Что означает идендификатор const в обьявлении функции? Например:
C++
int if_R() const; // ОНА ВОЗВРАЩАЕТ КОНСТАНТУ??????
 
// и можно ли писать так:
 
const int if_R();
 
// если да, то есть ли разница?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 11:17     Что означает идендификатор const в обьявлении функции?
Посмотрите здесь:

Что означает const после круглых скобок функции - C++
всем привет. скажите, а что здесь значит const? int func(int var) const { return get; }

Что означает такое обьявление функции? - C++
SimpleCat &TheFunction()

Что означает знак & в объявлении функции - C++
Здравствуйте, в обучающих статьях о С++ наткнулся на очень интересную синтаксическую конструкцию. Не совсем разобрался с указателями и...

Что означает оператор "->" в заголовке функции - C++
Встретил такой код: template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; } Со всеми его...

Что означает "_t" в имени функции? - C++
что означает _t в имени фунции или типа данных. _tcscpy, wchar_t, _tprintf

Тип char ошыбка в обьявлении исправте хто может - C++
Всем здрасте! :) А почему когда я пишу так при обьявлении типа char: char name={f,r,a,n,c,a,null}; Компилятор выдает...

Пример с учебника Дэвиса. Необьявленный идендификатор - C++
Всем доброго времени суток! В книжке такой пример: // BitTest — инициируются две переменные и // выводятся результаты выполнения ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,066
Записей в блоге: 3
Завершенные тесты: 1
10.04.2013, 11:23     Что означает идендификатор const в обьявлении функции? #2
Цитата Сообщение от programina Посмотреть сообщение
Что означает идендификатор const в обьявлении функции?
означает, что метод класса не изменяет состояние объекта

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
class A{
    int x;
public:
    A(){x=0;}
    void SetX_1()const{x=10;}//Ошибка
    void SetX(){x=10;}
}
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.04.2013, 11:24     Что означает идендификатор const в обьявлении функции? #3
Если не ошибаюсь, то в первом случае метод не будет изменять значений объекта.
а const int if_R возвращает константное значение.
Croessmah
Модератор
Эксперт CЭксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,066
Записей в блоге: 3
Завершенные тесты: 1
10.04.2013, 11:24     Что означает идендификатор const в обьявлении функции? #4
Так же может быть полезно почитать про mutable
C++
1
2
3
4
5
6
7
class A{
    mutable int x;
public:
    A(){x=0;}
    void SetX_1()const{x=10;}//Нет ошибки
    void SetX(){x=10;}
};
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 11:28  [ТС]     Что означает идендификатор const в обьявлении функции? #5
Цитата Сообщение от Croessmah Посмотреть сообщение
означает, что метод класса не изменяет состояние объекта

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
class A{
    int x;
public:
    A(){x=0;}
    void SetX_1()const{x=10;}//Ошибка
    void SetX(){x=10;}
}
Если я правильно понимаю, то в конструкторе переменная х инициализирована нулем, а любая попытка метода идентифицированного const'ом изменить значение в х приведет к ошибке?
Croessmah
Модератор
Эксперт CЭксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,066
Записей в блоге: 3
Завершенные тесты: 1
10.04.2013, 11:33     Что означает идендификатор const в обьявлении функции? #6
Другими словами константные методы не могут изменять переменных класса и вызывать не константные методы.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 11:37  [ТС]     Что означает идендификатор const в обьявлении функции? #7
Croessmah, BumerangSP, спасибо.
Отдельное спасибо за mutable
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 15:40     Что означает идендификатор const в обьявлении функции?
Еще ссылки по теме:

Применение const в функции - C++
Подскажите как защитить массив от изменения в функции. #include <iostream> using namespace std; double igor(double mass,int...

Const после функции - C++
Здравствуйте! Объясните, пожалуйста, что делает тут const: double GetFrequency () const { return m_frequency; } ...

const char *[] в функции - C++
Прототип функции такой void deal(const int , const char *, const char *); А вот сама функция void deal(const int wDeck, const char...

Const после функции - C++
Можно ли сказать что такая запись: void F(int a, int b)const заменяет эту: void F(const int a, const int b) ...

Const-параметры в аргументах функции - C++
А тут уже const излишен, перебор. Добавлено через 3 минуты void setDescription(const std::string& _description) { m_description...


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

Или воспользуйтесь поиском по форуму:
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
10.04.2013, 15:40     Что означает идендификатор const в обьявлении функции? #8
const
Yandex
Объявления
10.04.2013, 15:40     Что означает идендификатор const в обьявлении функции?
Ответ Создать тему
Опции темы

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