Vit (20.10.2013 17:47 - 18:12, просмотров: 145) ответил Скрипач на А если кроме ПИД у вас есть еще Гистерезис, несколько типов задержки и еще пяток всякого? Как не крути, наследование красивее получается.
ХЗ, может и красивше. (upd - ещё чуток причесал) не для холивара - я просто плюсы не люблю - считаю, что они травмируют моск, а вот C# это няшка:)
по мне получается
RoomLight_Proc r1, r2;
PID_Proc Pid1, Pid2;
Gisteresis_Proc g1, g2;
r1.run(); r2.run();
Pid1.run(); Pid2.run();
g1.run(); g2.run();
супротив
RoomLight_param r_param_1, r_param_2;
pt r1 = {0,0,(void *)&r_param_1};
pt r2 = {0,0,(void *)&r_param_2};
PID_param Pid_param_1, Pid_param_2;
pt Pid1 = {0,0,(void *)&Pid_param_1};
pt PId2 = {0,0,(void *)&Pid_param_2};
Gisteresis_param g_param_1, g_param_2;
pt g1 = {0,0,(void *)&g_param_1};
pt g2 = {0,0,(void *)&g_param_2};
RoomLight_run(&r1); RoomLight_run(&r2);
PID_run(&Pid1); PID_run(&Pid2);
Gisteresis_run(&g1); Gisteresis_run(&g2)
- ничего особо не выигрываем. Инициализацию пооборачивать можно в одну строку.
В принципе можно залупашить и на Сях через this, и сделать, чтобы this не видно было невооруженным глазом, только нафиг надо:)