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

Для чего const после phone() - C++

Восстановить пароль Регистрация
 
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
25.06.2012, 21:10     Для чего const после phone() #1
C++ (Qt)
1
const char* phone()const {return phone_;}
Для чего const после phone()?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.06.2012, 21:14     Для чего const после phone() #2
Цитата Сообщение от defer Посмотреть сообщение
Для чего const после phone()?
const после phone() значит что метод не изменяет состояние объекта
lamerr
9 / 9 / 1
Регистрация: 05.04.2012
Сообщений: 26
25.06.2012, 21:16     Для чего const после phone() #3
Цитата Сообщение от Jupiter Посмотреть сообщение
const после phone() значит что метод не изменяет состояние объекта
...а если всё же попробовать изменить его внутри функции, произойдёт ошибка компиляции. По сути, это защита от ошибок разработчика.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.06.2012, 21:19     Для чего const после phone() #4
Цитата Сообщение от defer Посмотреть сообщение
Для чего const после phone()?
Он показывает, что функция не изменяет данные в классе. Также может вызывать только константные методы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Foo
{
    void foo() const
    {
 
    }
 
    const void fooNoConst()
    {
 
    }
 
    const void func() const
    {
        foo();
        //fooNoConst(); ERROR
    }
};
 
int main()
{
 
    return 0;
}
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
25.06.2012, 21:24     Для чего const после phone() #5
Цитата Сообщение от lamerr Посмотреть сообщение
По сути, это защита от ошибок разработчика.
Не только. Это ещё позволяет вызывать эту функцию от константных объектов.
Yandex
Объявления
25.06.2012, 21:24     Для чего const после phone()
Ответ Создать тему
Опции темы

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