是否可以通過class[i][j]
實現訪問類中的私有數據向量foo
的函數?這應該調用向量foo[i][j]
的內部函數。與類「class [i]」類中的訪問向量將是向量
1
A
回答
4
一個簡單的解決方案是實現operator[]
所以「剝落」只有第一維:
#include <cstdlib>
class MyClass
{
std::vector<std::vector<int> > foo;
public:
// grant write access
std::vector<int>& operator[](size_t index)
{
return foo[index];
}
// grant read access
const std::vector<int>& operator[](size_t index) const
{
return foo[index];
}
};
你需要,因爲const correctness的two overloads。 (如果您只想授予讀取權限,而不是寫入權限,當然不需要非const版本。)
2
您可以重載operator[]
來執行此操作。您可能需要查看this faq以獲取有關使用operator()
的建議。
+1好答案和const正確性。 – SingleNegationElimination 2010-11-28 22:23:43