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

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

Войти
Регистрация
Восстановить пароль
 
Boxer007
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 11
#1

зачем в с++ писать в объявление функции const ? - C++

15.10.2013, 00:01. Просмотров 906. Ответов 2
Метки нет (Все метки)

C++
1
2
3
Доброго времени суток.
Ответе на мой вопрос пожалуйста зачем в с++ писать в объявление функции [B][U][I][COLOR="Red"]const[/COLOR][/I][/U][/B] ?
Пример : [SIZE="4"]string MyFunc() const;[/SIZE][CPP]
[/CPP]

Добавлено через 1 минуту
Доброго времени суток.
Ответе на мой вопрос пожалуйста зачем в с++ писать в объявление функции const ?
Пример : string MyFunc() const
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2013, 00:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос зачем в с++ писать в объявление функции const ? (C++):

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

Зачем нужен const при перегрузке оператора - C++
Следующий код описывает класс СТРОКА string_. При перегрузке оператора '=' string_& string_::operator=(const string_ &str) ...

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

Как грамотней писать объявление указателя? - C++
Ну собственно сабж. int* a; или int *a; Куда Фен Шуй рекомендует звёздочку ставить ? :)

Зачем нужно опережающее объявление класса в заголовке? - C++
Часто натыкаюсь на такой код: class NewType; class Class1 { public: Class1(); private: NewType *field; };

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

2
tzeentch
25 / 25 / 2
Регистрация: 13.04.2013
Сообщений: 79
15.10.2013, 00:10 #2
В обьявлении функции писать const нельзя.
Можно писать const в обьявлении метода:

C++
1
2
3
4
5
6
class Foo {
    int _x;
  public:
    int getX() const { return _x; }
    void setX(int i) { _x = i; }
};
Для того, чтобы показать, что метод не меняет обьект, и чтобы можно было вызывать этот метод у обьектов-констант, например:

C++
1
2
3
4
5
void f() {
  const Foo obj;
  obj.setX( 10 ); // Ошибка, метод setX не константный.
  cout << obj.getX();  // Норм, get() обьявлен как const
}
1
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,880
Записей в блоге: 3
Завершенные тесты: 1
15.10.2013, 00:13 #3
Функция член класса в таком случае является константной, в ней нельзя менять состояние объекта (кроме mutable членов класса).
Внутри константных функций разреено вызывать другие константные функции.

Для константных объектов разрешен вызов консантных методов.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2013, 00:13
Привет! Вот еще темы с ответами:

Зачем нужны библиоткки Длл и как их писать - C++
Всем доброго времени суток раскажите пожалуйста о библиотеках длл

Зачем в целом числе писать вещественную часть при расчете триганометрических функций в библиотеке math.h - C++
Доброго времени суток. В чем собственно петрушка. При расчете функции наткнулся на ошибку вычислений. В результате было обнаружено...

Зачем часто писать std::, если можно один раз using namespace std? - C++
зачем часто писать std:: если можно один раз using namespace std?

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


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

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

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