Предположим, у меня есть два экземпляра одного класса. У класса есть указатель на некоторые данные, и я хочу, чтобы экземпляры обменивались указателями как часть алгоритма какой-то частной функции, но без компрометации данных для всех остальных, предоставляя прямой доступ к ним через открытую функцию.
Моей первой идеей было добавить статическую переменную типа bool с именем exchange и два метода: приватный: void requestExchange () и публичный: Data ** response ().
requestExchange установит для exchange значение true, и сразу за ним будет следовать response () из выбранного экземпляра, который будет выполнять следующее:
if(exchange==true){
exchange=false;
return data;
}
else{return...?!
Это было тогда, когда я понял, что у меня нет способа симулировать «НЕТ ОП», поскольку данные могут фактически быть ПУСТО (NULL), поэтому, предположительно, все идет как ответ. Есть идеи, что можно сделать?
ОБНОВЛЕНИЕ: Я немного подумал об этом, и поскольку комбо-запрос-ответ будет вызываться только в контексте, в котором значение NULL будет иметь смысл (обмен наверняка верен), я предполагаю, что могу просто вернуть NULL и смоделировать НЕТ OP таким образом. Для постороннего NULL в результате будет бесполезен ... Но меня все равно интересуют предложения. Должен быть более хорошо структурированный способ сделать это.