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

Пояснить про const в возвращаемом типе функции - C++

Восстановить пароль Регистрация
 
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
13.08.2011, 16:20     Пояснить про const в возвращаемом типе функции #1
когда может понадобится написать такое:

C++
1
2
3
4
const int func(int i)
{
    return i+5;
}
вопрос конкретно за const
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2011, 16:20     Пояснить про const в возвращаемом типе функции
Посмотрите здесь:

C++ Вопрпос про const: в какой области памяти они находятся, и где это объявлять ?
Применение const в функции C++
C++ Ошибка в возвращаемом типе
Const после функции C++
C++ const& и const* в имени функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
13.08.2011, 17:40     Пояснить про const в возвращаемом типе функции #2
const int i=srand(time(null))
i=func(i)
или проста некогда
или извращёным умо
Drum and C++
12 / 14 / 0
Регистрация: 03.08.2011
Сообщений: 213
13.08.2011, 17:42     Пояснить про const в возвращаемом типе функции #3
это бред
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
13.08.2011, 18:05     Пояснить про const в возвращаемом типе функции #4
Если добавлять const к всторенным типам данных, то в этом нет никого смысла, потому что функция возвращает r-value, к которому не могут быть применены операции =, ++ и т.д.
Но если функция возвращает обьект какого-то класса, то тогда к этому обьекту могут быть применены только константные методы.
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
class A {
public:
    A(): n(0) {}
    int get_num(void) const {return n;}
    void set_num(const int _n) {n = _n;}
private:
    int n;
};
 
const A foo(void)
{
    return A();
}
 
int main(void)
{
    foo().get_num();
    foo().set_num(11); // error
 
    return 0;
}
Сыроежка
Заблокирован
14.08.2011, 18:01     Пояснить про const в возвращаемом типе функции #5
Цитата Сообщение от Mayonez Посмотреть сообщение
когда может понадобится написать такое:

C++
1
2
3
4
const int func(int i)
{
    return i+5;
}
вопрос конкретно за const
Лично я не знаю, когда это может понадобиться. Даже при поиске блока catch для оператора throw квалификатор const убирается. То есть если вы напишите

C++
1
2
3
4
5
6
7
8
9
10
try
{
   throw ( func( 0 ) );
}
catch ( int )
{
}
catch ( const int )
{
}
То компилятор вас обругает, так как ему достаточно catch ( int ).
Yandex
Объявления
14.08.2011, 18:01     Пояснить про const в возвращаемом типе функции
Ответ Создать тему
Опции темы

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