|
28.08.2003, 17:19 | #1 |
Участник
|
Что передается функциям, ссылки или значения?
Подскажите пожалста, когда в функцию передается значение, а когда ссылка на него. В плохой документации ничего про это не нашел, а хорошей не имеем. Знающие люди сказали, что ссылок в аксапте нет вообще.
Однако, если в функцию (типа 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. Оба!!! ; } |
|
Теги |
передача параметров, ссылочная переменная |
|
|