Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
2 / 2 / 0
Регистрация: 02.11.2018
Сообщений: 55

Создать оператор, который будет суммировать объекты класса

09.04.2019, 15:24. Показов 4204. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс поля которого это "название" и "лист", нужно создать оператор который будет сумировать объекты данного класса.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2019, 15:24
Ответы с готовыми решениями:

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Необходим оператор, который будет как if, но будет использоваться многоразово
Доброго времени суток! В C# я немного новичёк. Делаю программу, в которой будет очень много действий. Необходим оператор, который будет...

Оператор "+", который должен суммировать 2 массива 2-х классов, выдает ошибку доступа
Все же не могу понять причину этого... Вот код: #include <iostream> #include<ctime> #include<stdio.h> ...

23
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
10.04.2019, 16:25
Лучший ответ Сообщение было отмечено Chornopolskiy как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Chornopolskiy Посмотреть сообщение
листы нельзя просто так объеденить я начал использовать что попало
А Вам и не надо их ОБЪЕДИНЯТЬ. Вам надо создать новый в который входят все элементы обоих.
Команда a.Films.Concat(b.Films) создаёт единую последовательность из обоих листов.
А команда Films = films.ToList(); преобразует последовательность в список (List) и присваивает полученный список полю Films.

Добавлено через 8 минут
Chornopolskiy, при отправке кода используйте теги. Они на кнопках сверху в окне редактора сообщений.

Цитата Сообщение от Chornopolskiy Посмотреть сообщение
Вот проблема в этом конструкторе..Я при создании объекта данного класса не знаю что вводить на месте второго аргумента...тоесть я пишу Videoteka Movie = new Videoteka ("Name", что-то там еще ) вот мне нужно узнать что вводить вместо "что-то там еще"
Если у Вас есть список фильмом для видеотеки, то так (один из вариантов)
C#
1
Videoteka vt = new Videoteka("Видеотека", new Video[] {film1, film2, film3});
Если Вам нужен конструктор с именем но без списка фильмов то добавьте его
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
class Video
{
    public string Name { get; private set; }
    public Video(string name) => Name = name;
}
 
 
class Videoteka
{
    List<Video> Films = new List<Video>();
    public string Name { get; private set; }
 
    public Videoteka(string name) => Name = name;
 
    public Videoteka(string name, IEnumerable<Video> films) : this(name) 
        => Films = films.ToList();
 
    public static Videoteka operator +(Videoteka a, Videoteka b)
    {
        return new Videoteka(a.Name + " + " + b.Name, a.Films.Concat(b.Films));
    }
    public override string ToString()
    {
        return "{" + Name + " = " + string.Join(", ", Films.Select(f => f.Name)) + "}";
 
    }
}
Добавлено через 5 минут
И ещё раз Вам напоминаю. У Вас нет из вне доступа к полю Films - оно приватное.
По уму Вам надо Videoteka сделать производным от List<Video>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        class Videoteka : List<Video>
        {
            //List<Video> Films = new List<Video>();
            public string Name { get; private set; }
 
            public Videoteka(string name) => Name = name;
 
            public Videoteka(string name, IEnumerable<Video> films) : this(name)
                => AddRange(films);
 
            public static Videoteka operator +(Videoteka a, Videoteka b)
            {
                return new Videoteka(a.Name + " + " + b.Name, a.Concat(b));
            }
            public override string ToString()
            {
                return "{" + Name + " = " + string.Join(", ", this.Select(f => f.Name)) + "}";
            }
        }
Тогда инициализацию Вы можете делать так же как у обычного List
C#
1
Videoteka vt = new Videoteka("Видеотека") {film1, film2, film3};
Добавлять, удалять, искать элементы - для всего можно использовать методы List

Добавлено через 4 минуты
Цитата Сообщение от Chornopolskiy Посмотреть сообщение
нельзя делать set приватным..должна быть возможность задавать какое-то имя
Имя, обычно, бывает постоянным или почти постоянным. Оно задаётся с конструктора. Если есть потребность иногда его менять, то для этого надо сделать метод public void SetName(string name) => Name = name;
1
2 / 2 / 0
Регистрация: 02.11.2018
Сообщений: 55
10.04.2019, 18:36  [ТС]
Элд Хасп, подскажите пожайлуста!!!
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
10.04.2019, 18:54
Лучший ответ Сообщение было отмечено Chornopolskiy как решение

Решение

Цитата Сообщение от Chornopolskiy Посмотреть сообщение
подскажите пожайлуста!!!
Что подсказать?
1
2 / 2 / 0
Регистрация: 02.11.2018
Сообщений: 55
10.04.2019, 20:26  [ТС]
Элд Хасп, Уже ничего, у меня просто не обновилось и я думал что вы не ответили....Спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2019, 20:26

Создание объекта класса, который будет содержать указанное количество объектов другого класса
Здравствуйте. Я сейчас только учусь, помогите, пожалуйста. Задача такая: необходимо создать класс кораблика из игры &quot;Морской...

Перезагрузить оператор cout, объекты класса передать через указатель и
Нужно перезагрузить оператор cout Объекты класса передать через указатель и периметр треугольника вывести как сумма 3-х чисел с...

Создать файл, в который будет вводится текст который введен с Edit
помогите пожалуйста с делфи. нужно создать файл в который будет вводится текст который введен с эдита. пишу программу, выдает без ошибок,...

Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка
Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка. Всем огромное спасибо за помощь! |

Как можно передать из функции или процедуры массив, который будет содержать ссылки на объекты из другого массива/коллекции ?
Доброго времени суток, буду благодарен, если поможете с решением следующей проблемы. Как можно передать из функции или процедуры...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru