Здравствуйте, 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, в котором несколько методов для создания целевых объектов. Фабричный метод создаёт, инициализирует и возвращает готовый экземпляр требуемого типа.
Не все языки позволяют выносить методы отдельно за пределы class def
// фабрика
class maker (
Car new_car(int wheels, float max_speed)
{
ret = new Car;
ret.wheels = wheels;
ret.max_speed = max_speed;
return ret;
}
Test new_test(string path)
{
ret = new Test;
ret.path = path;
ret.handle = CreateFile(path);
return ret;
}
)
—
кст. В вашем языке можно передать и хранить тип данных как значение?