我需要一些关于我正在学习的编程语言课程中的问题的指导。
我们需要想出一种在 C++ 中实现数组类的方法,以便静态检查访问它的元素是否溢出。我们不使用 C++11(静态断言)或任何其他黑盒解决方案 - 这是一个理论问题,而不是我出于编码目的需要的东西。
我们确实在讲座幻灯片中得到了强烈的暗示:
“当索引是整数类型时,不可能检测到数组索引的溢出——如果索引的类型对应于数组大小(它必须是数组类型的一部分),则无法检测到。”
我考虑过使用固定长度(数组大小)字符串作为索引,但除了考虑这个选项之外,我真的没有得到太多:(。
澄清:好的,这得到了一些混乱的答复,可能是因为我不清楚 - 所以我会再次强调:
- “静态”的意思是“在编译时”。编译器应该提醒用户溢出(警告/错误..)。不是运行时!
- 阅读给我们的“提示”——它会被使用。具体来说,程序可能不会检查边界!具体而言,不使用或模拟 c++ 中数组的 at() 方法。
鉴于这一切,我认为他们想要的是某种转换 int->(Indices type) 以某种方式失败或为这些索引计算错误值,以防数组溢出。
希望现在更清楚了。谢谢你的