Подскажите пожалста, когда в функцию передается значение, а когда ссылка на него. В плохой документации ничего про это не нашел, а хорошей не имеем. Знающие люди сказали, что ссылок в аксапте нет вообще.
Однако, если в функцию (типа void) передается класс, а в теле этой функции меняется переменная этого класса, то после завершения функции получаем измененный объект. Так же все работает при операции присваивания.
предположительно, объекты классов и таблиц - передаются (и присваиваются) по ссылке, а вот переменные основных типов - по значению.
А вот и пример:
X++:
//Тестовый класс
class TestClass
{
int a;
}
int fa(int _a = a)
{
a = _a;
return a;
}
static void incA(TestClass _nts)
{
_nts.fa(_nts.fa()+1);
}
//Метод любого другого класса, ходим тут дебагером и смотрим.
void run()
{
TestClass NTK1, NTK2;
;
NTK1 = new TestClass();
NTK1.fa(5);
TestClass::incA(NTK1);
//Тут NTK1 уже равен 6...
NTK2 = NTK1;
//Тут они оба равны 6.
TestClass::incA(NTK2);
//А тут равны 7. Оба!!!
;
}