• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Универсальное Обьявление Для Примитивных Числовых Типов.

  • Автор темы APJIEKUH48
  • Дата начала
A

APJIEKUH48

Общий смысл таков: У меня есть некоторый класс некоторым количеством числовых переменных.
При создании экземпляров этого класса данные могут передаваться в любых примитивных числовых типах.
Пример: У нас есть класс с 2-мя переменными типа double;
Даже если брать только int и double, я должен написать 4 конструктора для всех возможных комбинаций:
(int,int);
(int,double);
(double, int);
(double,double);
А если у нас 3 и более переменных? Или больше диапазон типов?
Нет ли какого-то другого способа перебрать все эти варианты?

Еще небольшая проблема: Если нам нужно чтобы класс имел переменные переданных ему типов?
В том же примере можно конечно насильно привести все типы к 1, но вопрос какой тип выбрать? Самый большой, чтобы уменьшить погрешность, но тогда увеличиться расход памяти. Ну думаю смысл понятен.

Возможно решения не существует но хотелось бы знать наверняка. Может быть у кого то есть какие-то идеи?
 
W

Whatka

а что вас смущает?
1). 4 конструктора - это не много,тем более что они мало чем будут отличаться как я понял
2). Если у вас 2 переменные то сделать приведение к большему типу не существенно увеличит расход памяти
3).если в классе много полей необходимых для заполнения
можно передавать строку или файл заполненые этими значениями

Добавлено: ой пропустил один пункт)
есть функция toString() -с её помощью можно определить тип переменной
 
A

APJIEKUH48

а что вас смущает?
1). 4 конструктора - это не много,тем более что они мало чем будут отличаться как я понял
2). Если у вас 2 переменные то сделать приведение к большему типу не существенно увеличит расход памяти
3).если в классе много полей необходимых для заполнения
можно передавать строку или файл заполненые этими значениями

Добавлено: ой пропустил один пункт)
есть функция toString() -с её помощью можно определить тип переменной

Вариант с 2-мя переменными 2-х типов я привел для примера. Если у нас 3 переменных то уже 9 конструкторов, это при 2-х типах. 4 переменных 4 типов? Это только конструктор придется переопределять огромное число раз. Поэтому я и спрашиваю нет ли другого способа решить эту задачу. 2 переменных привести в другому типу не проблема, а если у нас передаются массивы данных? Расход памяти может увеличиться довольно значительно, особенно если для верности приводить к длинным типам.

На счет функции toString() не совсем понял как её правильно применить в данной ситуации. Приведите пример если не трудно пожалуйста.
 

Murtas

Green Team
11.04.2006
137
1
BIT
4
читайте композицию ... короче можно передавать класс, а у класса полные наборы конкструкторов куда передаются переменные типа Object или по шаблонам можно в новых версиях
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!