С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588

Перегрузка операторов для константных и неконстантных объектов

06.12.2015, 21:33. Показов 3195. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
какая необходимость использовать два таких метода в одном классе? И какой когда отработает?
C++
1
2
3
    const type * operator[](size_t const& row) const
 
    type * operator[](size_t const& row)
type - класс шаблонный, так что тип зависит от его использования.


Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2015, 21:33
Ответы с готовыми решениями:

Перегрузка операторов не для объектов
Можно ли так делать? Потому что в таком случае вызывается не мой оператор, а исключающее или, стандарнтое. Как и что сделать, чтобы...

В чем различия константных объектов и константных ссылок на объекты в аргументах функций-членов?
Как правильно необходимо указывать типы данных для входных параметров метода? Пример: void resetArguments(const int inputStrong,...

Перегрузка операторов для списков
Как сделать перегрузку оператора умножить (оператор возвращает адрес первого элемента списка нового списка, который содержит общие элементы...

7
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
06.12.2015, 21:39
Лучший ответ Сообщение было отмечено _Valera_ как решение

Решение

_Valera_, когда создаете константный объект или передаете константную ссылку на объект в функцию/метод будет вызываться первый вариант оператора. Для неконстантных объектов будет вызываться второй вариант.

Добавлено через 2 минуты
Только обычно возвращаются не указатели а ссылки.
1
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 21:39  [ТС]
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
когда создаете константный объект или передаете константную ссылку на объект в функцию/метод
то есть при отсутствии первого, у меня была бы ошибка?!
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
06.12.2015, 21:40
Цитата Сообщение от _Valera_ Посмотреть сообщение
?!
Да!!?!!!?!!!!!
1
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 21:40  [ТС]
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Да!!?!!!?!!!!!
принято!
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
06.12.2015, 21:46
Цитата Сообщение от _Valera_ Посмотреть сообщение
принято!
можно ведь проверить
1
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.12.2015, 21:51  [ТС]
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
можно ведь проверить
можно, но для перестраховки лучше спросить
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
06.12.2015, 21:51
Самый плохой пример на эту тему - не смотреть!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
using namespace std;
 
class Hero
{
   int m_hp = 0;
 
public:
   int        getHP() const;
   int&       getHP();
};
 
int Hero::getHP() const
{
   return m_hp;
}
int& Hero::getHP()
{
   return m_hp;
}
 
 
int main()
{
   Hero a;
   a.getHP() = 15;
   cout << a.getHP() << endl;
 
   const Hero b;
   //b.getHP() = 18;                  // error
   cout << b.getHP() << endl;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.12.2015, 21:51
Помогаю со студенческими работами здесь

Перегрузка операторов для list
Как перегрузить операторы вывода в поток и доступа по индексу для list?

Перегрузка операторов для контейнера
Доброго времени суток. Просматривая STL, в ветке вектора наткнулся на такую интересную запись: vector&lt;int&gt; v1 = {45,85,68}; ...

Перегрузка операторов для классов
Определить класс описывающий вектор в пространстве. Для класса перегрузить префиксный унарный оператор. Написать программу в которой...

Перегрузка операторов для класса
class A { private: size_t i; public: size_t i_get() { return i; } };

Перегрузка операторов для работы со стеком
Текст задания: Создать объект &quot;динамический стек&quot;. Перегрузить операции +, -, +=, -= для выполнения манипуляций со стеком. Вот...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru