Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
#1

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

13.08.2011, 16:20. Просмотров 521. Ответов 4
Метки нет (Все метки)

когда может понадобится написать такое:

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

Ошибка в возвращаемом типе - C++
Помогите пожалуйста, у меня уже волосы дыбом встают. Почему компилятор ругается на это... template<typename _My> iterator...

Модификатор const для параметра функции не const? - C++
void foo(const int N) { int Arr; //<-- ??? } В clang это работает. В VisualStudio 2015 нет.

const& и const* в имени функции - C++
Объясните пожалуйста что значит const& и const* в имени и параметрах функции(пример из Вандевурд,Джосаттис): template <typename T> ...

Пояснить про указатели и ссылки - C++
есть переменное и указатель.. Значение нашей переменной случайный адрес, Как менять адрес указателя, таким образом, что бы она стала...

int const * const foo(const int* param) const - разъясните значение квалификаторов - C++
int const * const foo(const int* param) const -----1------2----------3----------------4 1: ? 2: делает содержимое массива или...

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

4
Van111
210 / 189 / 4
Регистрация: 03.08.2011
Сообщений: 2,598
Записей в блоге: 12
13.08.2011, 17:40 #2
const int i=srand(time(null))
i=func(i)
или проста некогда
или извращёным умо
0
Drum and C++
12 / 14 / 0
Регистрация: 03.08.2011
Сообщений: 213
13.08.2011, 17:42 #3
это бред
0
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
13.08.2011, 18:05 #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;
}
2
Сыроежка
Заблокирован
14.08.2011, 18:01 #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 ).
0
14.08.2011, 18:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2011, 18:01
Привет! Вот еще темы с ответами:

Вопрпос про const: в какой области памяти они находятся, и где это объявлять ? - C++
Приветствую. У меня вот такая задача - завести массив констант, причём он используется ТОЛЬКО одной функцией (не main), и поэтому,...

Количество символов в возвращаемом имени - C++
Есть такая реализация возвращаемого имени const char* getClass() const { return typeid(*this).name(); } подскажите, зачем перед...

Пояснить работу рекурсивной функции - C++
Ребят, может кто-нибудь объяснить тугодуму принцип работы этой функции, потому что я что-то сам никак... double maxs(double* a, int n)...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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