Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 26.02.2014
Сообщений: 27

Создание произвольного класса (<T>). Ошибка с элементами типа Т

09.08.2014, 21:40. Показов 499. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Я хотел создать простой класс для своих нужд из двух переменных любого числового типа(real,single,byte,word,integer...) ниже код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type two<T> = class
  min,max:T;
  public
  constructor(min_,max_:T);
  begin
    min:=min_;
    max:=max_;
  end;
  function ToString:string;override;
  begin
    result:=Format('[{0},{1}]',min,max);
  end;
  function sum:T;
  begin
    result:=min+max;// Операция '+' не применима к типу T 
  end;
end;
При компиляции выдает ошибку в функции sum: "Операция '+' не применима к типу T ".
Пытался извращаться - заметил T на real, тогда у меня вышла ошибка "Операция '+' не применима к типу real". Добавил "StrToFloat(FloatToStr())" - вышла ошибка: "нельзя преобразовать real к real".
Потом мне сказали добавить where, я тоже психанул и добавил:
Pascal
1
  where T:System.ValueType, System.IComparable, System.IFormattable, System.IConvertible, System.IComparable<T>, System.IEquatable<T>;
Та же ошибка! Без изменений.
Ребят, подскажите, как все сделать правильно? Желательно кодом с коменнтариями.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2014, 21:40
Ответы с готовыми решениями:

Создание объекта произвольного класса по указателю на базовый класс
Есть некий абстрактный базовый класс . Мы знаем , что от этого базового класса будет образовано несколько конкретных производных классов...

Создание указателя типа базового класса на экземпляр производного класса
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса - наследника, для чего это может применяться?

Создание класса: Линейные целочисленные массивы произвольного размера с сортировкой вставками
Дана задача: Создать Класс: Линейные целочисленные массивы произвольного размера с сортировкой вставками. Проблема: Люди..Не умею...

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,904
Записей в блоге: 12
10.08.2014, 00:06
Наивный такой... Это первая проблема из тех, с которыми каждый сталкивается при работе с дженериками. Почитай об обходных путях для ее решения: Arithmetic in Generic Classes

Where тут не поможет, не существует такого класса или интерфейса, который работал бы и со встроенными, и с пользовательскими типами... В .NET 4.0 можно попробовать использовать dynamic: Simulating INumeric with dynamic in C# 4.0, но проверить как это будет выглядеть в PABC.NET я не могу, у меня .NET 3.5, там этой фичи еще нет...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2014, 00:06
Помогаю со студенческими работами здесь

После ввода с клавиатуры произвольного одномерного массива целых чисел (объекта данного класса),в пределах целого типа вывести в два столбика положите
Здравствуйте.помогите пожалуйста...вот такая задачка. После ввода с клавиатуры произвольного одномерного массива целых чисел (объекта...

Создание 2х мерного массива типа чар, с неупорядоченными элементами
Помогите создать 2х мерный массив типа чар, где строки будут от 1 до 10 а столбцам будут присвоены буквы A, B, F, G. Конечно все это...

Создание динамического списка с элементами типа запись и заполнение полей из файла
Народ помогите написать программу очень нужно: программа должна содержать: 1) Создание динамического списка с элементами типа запись и...

Создание класса типа строка
Нужно создать класс типа строка, в котором будет: -конструктор по умолчанию который создает пустую строку; -конструктор который...

Создание списка/массива типа класса
Задача - Получить n'ое количество объектов с типом моего класса. Код класса: public class MFile { short Id;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru