我需要一些關於來自我正在學習的編程語言課程的問題的指導。C++中數組的靜態邊界檢查
我們需要想出一種方法來在C++中實現一個數組類,以便對它的元素進行靜態檢查以查找溢出。我們不是要使用C++ 11(靜態斷言),也不要使用任何其他的黑盒解決方案 - 這是一個理論問題,而不是編碼需要的東西。
我們沒有得到在演講幻燈片強烈暗示:
「 是不可能的檢測數組索引溢出時,指數的整數類型 - 不,如果指數的類型對應於數組的大小(它必須是數組類型的一部分) 「
我想過使用固定長度(數組大小)字符串作爲索引,但除了考慮選項之外,我真的沒有得到太多:(。
澄清:好的,這有一些混淆的答覆給我噸,可能是因爲我不清楚 - 所以我會再次強調:
- 「靜態」意味着「在編譯時」。 編譯器應提醒用戶溢出(警告/錯誤..)。不是運行時!
- 閱讀給我們的「提示」 - 它會被使用。具體來說,該程序可能不會檢查邊界!特別是C++中的at()方法不能被使用或模擬。
在這一切的光我在想什麼,他們想要的是某種形式的轉化 INT - >(指數型) 不知何故失敗或計算在情況下,這些指標的列陣溢出錯誤的價值觀。
希望現在更清楚。謝謝
如果我正確理解你(我可能不是),你可以從std :: vector的at()方法得到一個很好的提示/線索,如果你想創建一個數組類,在邊界檢查。如果用戶試圖訪問超出界限的元素,它應該會引發異常。我不打算給你提供代碼,但仍然希望它有助於作爲指導 – Huy
這聽起來像他要求你重塑['std :: array :: at'](http://en.cppreference.com/W/CPP /容器/陣列/ AT)? –
我認爲你的問題需要改寫。一個類不能靜態檢查自己。雖然理論上可以通過靜態檢查來完成功能,但我懷疑它們是否有用。可能你想問一些其他問題,比如運行時限制檢查? –