Информация об изменениях

Сообщение Re[3]: "Гибкий" конструктор для инициализации объекта класса от 25.08.2023 13:04

Изменено 25.08.2023 13:17 Sm0ke

Re[3]: "Гибкий" конструктор для инициализации объекта класса (а
Здравствуйте, zelenprog, Вы писали:


S>>Чтож, вычислили параметры, закинули в конструктор / или там в метод init()


Z>А что за метод init()?


Z>Предлагаете делать у каждого класса такой метод?

Z>Напомню: у конструктора нету параметров.

Каждому классу, требующему инициализацию, исходя из параметров
я бы сделал метод init(params), раз конструктор без параметров.



В вашем языке можно передать и хранить тип данных как значение?
Re[3]: "Гибкий" конструктор для инициализации объекта класса
Здравствуйте, zelenprog, Вы писали:


S>>Чтож, вычислили параметры, закинули в конструктор / или там в метод init()


Z>А что за метод init()?


Z>Предлагаете делать у каждого класса такой метод?

Z>Напомню: у конструктора нету параметров.

Каждому классу, требующему инициализацию, исходя из параметров
можно сделал метод init(params), раз конструктор без параметров.



Или: Про фабрику вам уже советовали

это Можно сделать так:

class Car ( int wheels, float max_speed )

class Test ( string path, file handle )

// фабрика
class maker ()

maker::new_car(int wheels, float max_speed)
{
  ret = new Car;
  ret.wheels = wheels;
  ret.max_speed = max_speed;
  return ret;
}

maker::new_test(string path)
{
  ret = new Test;
  ret.path = path;
  ret.handle = CreateFile(path);
  return ret;
}


Что тут происходит? Это класс maker, в котором несколько методов для создания целевых объектов. Фабричный метод создаёт, инициализирует и возвращает готовый экземпляр требуемого типа.



кст. В вашем языке можно передать и хранить тип данных как значение?