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