ясное дело, в си беднейший менеджер памятиВот вот а в С++ будет потеря блока памяти
С чего бы это? Если объект класса создавать как стековую переменную, то при выходе за область видимости она будет автоматически уничтожена (в данном случае это произойдет при завершении итерации цикла, если конечно этот код на С++ переписать).Вот вот а в С++ будет потеря блока памяти => лики
for (i=0;i<clCList->GetCount();i++)
{
...
FactorList *clFList = new FactorList(); // Вот создание
...
}
возможно будет использоваться одна и та же область память для каждого объекта, присвоенного при итерации..Если в глобаьном смысле - этот класс предназначен для математических, так скть, расчетов по компаниям, ничего боле...
Если в данной конструкции PHP убъет память в конце цикла, перед началом новой итерации, то это меня устраивает!
<?php
error_reporting(E_ALL);
class test
{
public $v = 'y';
public $w = 'w';
public function __set($var, $val){
var_dump('свойства с именем ' . $var . ' не существует');
}
public function t(){
unset($this->v);
$this->v = $this->w; //эффект тот же (пусто)
var_dump($this);
echo '$this->v = & $this->r();<br>';
$this->v = & $this->r();
}
private function & r(){
return $this->w;
}
}
$v = new test();
$v2 = 'e';
echo 'unset($v->v)<br>';
unset($v->v);
echo '$v->v = $v2<br>';
$v->v = $v2;
var_dump($v);
echo '$v->v = & $v2 <br>';
$v->v = & $v2;
var_dump($v);
echo '$v->t();<br>';
$v->t();
var_dump($v);
уничтожение свойства, потом каким то макаром находит её только при присваивании по ссылке.unset($v->v)
$v->v = $v2
string 'свойства с именем v не существует' (length=33)
object(test)[1]
public 'w' => string 'w' (length=1)
$v->v = & $v2
object(test)[1]
public 'w' => string 'w' (length=1)
public 'v' => &string 'e' (length=1)
$v->t();
string 'свойства с именем v не существует' (length=33)
object(test)[1]
public 'w' => string 'w' (length=1)
$this->v = & $this->r();
object(test)[1]
public 'w' => &string 'w' (length=1)
public 'v' => &string 'w' (length=1)