|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|||||||||||
Как правильно перегрузить оператор [] =02.07.2014, 18:39. Показов 3962. Ответов 36
Метки нет (Все метки)
вот например в классе хранится массив, и допустим я хочу елементу массива в этом классе присвоить другое значение, тоесть так,
0
|
|||||||||||
| 02.07.2014, 18:39 | |
|
Ответы с готовыми решениями:
36
Как правильно перегрузить оператор для шаблона класса Как правильно перегрузить оператор умножения числа на матрицу? Std::set с кастомным классом, как правильно перегрузить оператор < ? |
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
| 02.07.2014, 18:53 [ТС] | |
|
castaway, ну хорошо, а если я етому елементу массива хоче присоить другое знаение, тогда как сделать?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 02.07.2014, 19:00 | |
|
Какое другое? Он и так рассчитан на любые значения.
0
|
|
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|||||||
| 02.07.2014, 19:05 [ТС] | |||||||
|
ну например нужное значение будет хранится в переменную num
0
|
|||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||
| 02.07.2014, 19:09 | |||||||
0
|
|||||||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
| 02.07.2014, 21:48 [ТС] | |
|
аа, я понял,
а тогда еще вопрос, а вот если я таким образом хочу присваивать значение не в массив а в стек, и стек у меня хранит разные типы, как мне узнать какой тип нужно вернуть для присвоения значения?
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 02.07.2014, 21:53 | |
|
mh-coder, для стека обычно существует всего две операции: push и pop. Операция индексации для стека бессмысленна.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 02.07.2014, 21:54 | |
|
Как можно сказать это не видя реализации твоего стека? Как ты вообще там разные типы будешь хранить?
0
|
|
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||||||||||||
| 02.07.2014, 22:06 [ТС] | ||||||||||||
|
main.cpp
0
|
||||||||||||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||||||
| 02.07.2014, 22:06 [ТС] | ||||||
|
Var.cpp
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 02.07.2014, 22:09 | |
|
mh-coder, ну вот что, давай не будем к стеку сейчас возвращаться - это путает и сводит с мысли. Для стека нет операции индекса. А вот для массива есть.
И ты похоже хочешь сделать вариантный (из разных типов) массив?
0
|
|
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|||
| 02.07.2014, 22:19 [ТС] | |||
|
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||
| 02.07.2014, 22:32 | ||||||
Сообщение было отмечено mh-coder как решение
Решение
mh-coder, посмотрел я твой код. Главная проблема здесь в том, что ты пытаешься смешивать ответственности. Вот сделал ты тип Var - прекрасно, он хранит разнотипные данные. Не нужно в него же пихать функциональность массива. Легче и логичней же сделать массив из типа Var:
1
|
||||||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||||||
| 02.07.2014, 22:53 [ТС] | ||||||
|
DrOffset, ахренеть, ты гений))))
еще тут вопрос возник взять допустим эту функцию
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 02.07.2014, 23:22 | ||
|
Чтобы объяснить эту концепцию придется поднять определенный пласт знаний, который может быть велик для одного поста. Поэтому объясню проще. Можно сказать, что ссылка представляет собой другое имя для объекта. Главная мысль, что ссылка, будучи раз инициализированной, неотрывно связана с оригинальным объектом и изменения происходящие с ней отражается на оригинальном объекте. Так что пока жив объект, который представляет this, ссылка будет верна. То, что в некоторых случаях она может быть реализована через адрес объекта и неявное разыменование - это уже деталь реализации. Для понимания концепции это не столь важно. Ну можно еще тут почитать.
0
|
||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
| 07.07.2014, 14:09 [ТС] | |
|
тут такой вопрос появился, а вот если я хочу присваивать значения так
class Var; Var[] = 5; тогда мне как я поимаю нужно перегрузить оператор скобок с войдом Var & operator [] (void); но так ругается студия, почему и как правильно?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 07.07.2014, 14:18 | |
|
С пустыми скобками нельзя.
0
|
|
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||
| 07.07.2014, 14:25 [ТС] | ||
|
и еще вопрос, как сделать чтобы значения можно было так выводить cout<<my_array[2];
0
|
||
| 07.07.2014, 14:25 | |
|
Помогаю со студенческими работами здесь
20
Как перегрузить оператор = Как перегрузить оператор? Как перегрузить оператор []? Как перегрузить оператор << в классе? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|