Показать сообщение отдельно
Старый 25.07.2012, 09:59   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,340 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
но если написать метод так:

X++:
public TmpTable parmTmpTable(TmpTable _tmpTable = tmpTable)
{
   if (!prmisdefault(_tmpTable))
      tmpTable.setTmpData(_tmpTable);
   return tmpTable;
}
то в этом случае временная таблица с клиента будет передана в класс сразу скопом, и при дальнейшей пробежке по tmpTable клиент затрагиваться не будет?
Метод setTmpData не копирует буфер таблицы, а всего лишь создает второй указатель на этот буфер. Т.е. буфер в данном случае все равно останется на клиенте.

Копирование указателя через простое присваивание не является копированием в общем случае. Это просто передача указателя.

В качестве проверки моих слов - попробуйте создать второй указатель через setTmpData, а затем измените в первом указателе какую-нибудь запись, после чего выберите ее во втором указателе. Увидите - что она тоже изменилась.
__________________
Возможно сделать все. Вопрос времени