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

Константные функции - C++

Восстановить пароль Регистрация
 
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 774
Завершенные тесты: 1
03.06.2016, 09:33     Константные функции #1
Почему все работает?
C++
1
2
3
4
5
6
7
8
class My
{
public:
    My();
    int retFunc() const;
private:
    bool isRet = false;
};
C++
1
2
My m;
    qDebug() << m.retFunc();
C++
1
2
3
4
5
6
7
8
9
My::My()
{
}
 
int My::retFunc() const
{
    int isRet = true;
    return 3;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
no_attention
27 / 27 / 13
Регистрация: 18.05.2016
Сообщений: 128
03.06.2016, 09:43     Константные функции #2
Забавно, но у меня не работает. Попробовал скомпилировать в Qt Creator 4.0.
DrOffset
6786 / 3997 / 917
Регистрация: 30.01.2014
Сообщений: 6,818
03.06.2016, 11:24     Константные функции #3
Цитата Сообщение от Knjagskij Посмотреть сообщение
Почему все работает?
А почему не должно?

Цитата Сообщение от no_attention Посмотреть сообщение
у меня не работает.
Это у тебя по другой причине не работает. C++11 нужно включить для in-class initialization.
no_attention
27 / 27 / 13
Регистрация: 18.05.2016
Сообщений: 128
03.06.2016, 11:27     Константные функции #4
DrOffset, дык тут же константная функция меняет значение нестатического поля, разве это должно работать?
DrOffset
6786 / 3997 / 917
Регистрация: 30.01.2014
Сообщений: 6,818
03.06.2016, 11:30     Константные функции #5
Цитата Сообщение от no_attention Посмотреть сообщение
дык тут же константная функция меняет значение нестатического поля, разве это должно работать?
Она меняет значение своей локальной переменной, а не никакого не поля.
Эта константность относится к this.
no_attention
27 / 27 / 13
Регистрация: 18.05.2016
Сообщений: 128
03.06.2016, 11:34     Константные функции #6
DrOffset, а, боже, не обратил внимания на int. И, когда у себя компилировал, его, видимо, убрал на автомате.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2016, 13:23     Константные функции
Еще ссылки по теме:

Константные функции-члены C++
C++ Дублирование кода и константные методы
C++ Константный указатель на константные данные (указатели)
Константные и не константные ссылки. Приведения типов. Нужно уточнение C++
Константные аргументы классов C++

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

Или воспользуйтесь поиском по форуму:
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 774
Завершенные тесты: 1
03.06.2016, 13:23  [ТС]     Константные функции #7
Точно, я сам случайно вставил int
Yandex
Объявления
03.06.2016, 13:23     Константные функции
Ответ Создать тему
Опции темы

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