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

Const в функциях-членах класса - C++

Восстановить пароль Регистрация
 
sashadereh
3 / 3 / 1
Регистрация: 30.09.2012
Сообщений: 63
23.09.2013, 20:40     Const в функциях-членах класса #1
setSmth() - некий метод класса myClass
C++
1
2
const myClass setSmth();
myclass setSmth() const;
Эти два варианта эквивалентны?

Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11823 / 6802 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
23.09.2013, 20:42     Const в функциях-членах класса #2
C++
1
const myClass setSmth();
Возвращение объекта const myClass


C++
1
myclass setSmth() const;
В данной функции нельзя менять состояние объекта (кроме mutable)
sashadereh
3 / 3 / 1
Регистрация: 30.09.2012
Сообщений: 63
23.09.2013, 20:51  [ТС]     Const в функциях-членах класса #3
Croessmah, благодарю.
Мариам
 Аватар для Мариам
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 10
23.09.2013, 22:48     Const в функциях-членах класса #4
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
const myClass setSmth();
Возвращение объекта const myClass


C++
1
myclass setSmth() const;
В данной функции нельзя менять состояние объекта (кроме mutable)
а если такая строка
C++
1
2
3
ComplexNumber const operator + (ComplexNumber const & cmpx) const
    {
        return ComplexNumber(m_real + cmpx.GetReal(), m_img + cmpx.GetImg());
для чего const в конце первой строки???
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
23.09.2013, 22:54     Const в функциях-членах класса #5
Цитата Сообщение от Мариам Посмотреть сообщение
для чего const в конце первой строки???
Цитата Сообщение от Croessmah Посмотреть сообщение
В данной функции нельзя менять состояние объекта (кроме mutable)
...
Мариам
 Аватар для Мариам
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 10
23.09.2013, 23:02     Const в функциях-членах класса #6
моего преподавателя такой ответ не устроил
зачем передавать, говорит, если нельзя изменять? и какие ограничения const накладывает на функцию в таком случае? и вот я не смогла ответить(
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
23.09.2013, 23:10     Const в функциях-членах класса #7
Уверен, если бы ты понимал, что отвечаешь, ответ бы устроил всех.
Функция myclass setSmth() const; не может изменять ни одно поле класса или вызывать неконстантные функции-члены его. А всё для того, чтобы можно было сделать так
C++
1
2
3
4
5
6
7
8
9
10
11
12
class myclass{
public:
  //...
  void setSmth() const;
};
 
int main(){
  const myclass obj;
  obj.setSmth();//не было бы const после setSmth()
                     //была б ошибка!
  //...
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.09.2013, 23:14     Const в функциях-членах класса #8
Цитата Сообщение от Мариам Посмотреть сообщение
зачем передавать, говорит, если нельзя изменять?
Т.е. например вывод, скажем, на экран аргумента уже бесполезен?
Цитата Сообщение от Мариам Посмотреть сообщение
и какие ограничения const накладывает на функцию в таком случае?
Нельзя вызвать не-const-функции из const-функции для объекта this.
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
23.09.2013, 23:14     Const в функциях-членах класса #9
Цитата Сообщение от Мариам Посмотреть сообщение
зачем передавать, говорит, если нельзя изменять? и какие ограничения const накладывает на функцию в таком случае? и вот я не смогла ответить(
Если бы я был на месте твоего преподавателя, меня бы такой ответ тоже не устроил. Надо уметь объяснить смысл написанного, а не читать по шаблону.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.09.2013, 23:15     Const в функциях-членах класса #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Уверен, если бы ты понимал
Цитата Сообщение от Мариам Посмотреть сообщение
и вот я не смогла ответить(
не все девочки мальчики
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2013, 01:45     Const в функциях-членах класса
Еще ссылки по теме:

Const throw(), наследование от класса exception C++
Копировать пустую строку в const char* Конструктор структуры (класса) C++
Error C2355: this: может указываться только в нестатических членах-функциях C++

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

Или воспользуйтесь поиском по форуму:
gray_fox
24.09.2013, 01:45     Const в функциях-членах класса
  #11

Не по теме:

Цитата Сообщение от Мариам Посмотреть сообщение
зачем передавать, говорит, если нельзя изменять?
Внезапно: что бы передавать и не изменять)

Yandex
Объявления
24.09.2013, 01:45     Const в функциях-членах класса
Ответ Создать тему
Опции темы

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