【发布时间】:2009-04-22 12:28:24
【问题描述】:
假设我有同一个类的两个实例。该类有一个指向某些数据的指针,我希望实例交换指针作为某些私有函数算法的一部分,但不会通过通过公共函数直接访问它来向其他人妥协数据。
我的第一个想法是添加一个名为 exchange 的 bool 类型的静态变量和两个方法:一个私有的:void requestExchange() 和一个公共的:Data** respond()。 requestExchange 会将 exchange 设置为 true,并紧跟来自所选实例的 respond(),这将执行以下操作:
if(exchange==true){
exchange=false;
return data;
}
else{return...?!
那时我意识到我无法模拟“NO OP”,因为数据实际上可能为 NULL,所以应该一切都作为响应。关于可以做什么的任何想法?
更新:我想了一下,因为请求-响应组合只会在结果 NULL 有意义的上下文中调用(交换肯定是真的)我想我可以简单地返回 NULL 并模拟这种方式没有操作。结果对于局外人来说 NULL 将毫无用处......但我仍然对建议感兴趣。必须有一种结构更完善的方法来做到这一点。
【问题讨论】:
-
发布更多代码,说明您的问题