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

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

Войти
Регистрация
Восстановить пароль
 
sashadereh
3 / 3 / 1
Регистрация: 30.09.2012
Сообщений: 63
#1

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

23.09.2013, 20:40. Просмотров 728. Ответов 10
Метки нет (Все метки)

setSmth() - некий метод класса myClass
C++
1
2
const myClass setSmth();
myclass setSmth() const;
Эти два варианта эквивалентны?

Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2013, 20:40     Const в функциях-членах класса
Посмотрите здесь:

char operator[](unsigned short offset) const; // что означает const? C++
C++ Что это bool operator== (const CLASS&) const;
Перегруженные знаки в дружественных функциях шаблона класса C++
C++ int const * const foo(const int* param) const - разъясните значение квалификаторов
C++ Const в параметрах. Перед чем нужно употребить const дабы обезопасить данные от изменения
Const throw(), наследование от класса exception C++
Копировать пустую строку в const char* Конструктор структуры (класса) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,945
Записей в блоге: 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
Эксперт С++
4876 / 3015 / 370
Регистрация: 10.11.2010
Сообщений: 11,075
Записей в блоге: 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
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 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
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.09.2013, 23:14     Const в функциях-членах класса #8
Цитата Сообщение от Мариам Посмотреть сообщение
зачем передавать, говорит, если нельзя изменять?
Т.е. например вывод, скажем, на экран аргумента уже бесполезен?
Цитата Сообщение от Мариам Посмотреть сообщение
и какие ограничения const накладывает на функцию в таком случае?
Нельзя вызвать не-const-функции из const-функции для объекта this.
castaway
Эксперт С++
4876 / 3015 / 370
Регистрация: 10.11.2010
Сообщений: 11,075
Записей в блоге: 10
Завершенные тесты: 1
23.09.2013, 23:14     Const в функциях-членах класса #9
Цитата Сообщение от Мариам Посмотреть сообщение
зачем передавать, говорит, если нельзя изменять? и какие ограничения const накладывает на функцию в таком случае? и вот я не смогла ответить(
Если бы я был на месте твоего преподавателя, меня бы такой ответ тоже не устроил. Надо уметь объяснить смысл написанного, а не читать по шаблону.
Tulosba
:)
Эксперт С++
4390 / 3233 / 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 в функциях-членах класса
Еще ссылки по теме:

Error C2355: this: может указываться только в нестатических членах-функциях C++
Инициализация в объявлении константных статических (const static) членов-данных класса. C++
Что значит const в конструкторе класса? C++
C++ Модификатор const для параметра функции не const?
C++ Поле класса const; ?

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

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

Не по теме:

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

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

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