使用“class [i]”类中的Access Vector将是向量

时间:2010-11-28 22:11:04

标签: c++ class vector

是否可以通过foo实现一个函数来访问类中的私有数据向量class[i][j]?这应该调用向量foo[i][j]的内部函数。

2 个答案:

答案 0 :(得分: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];
    }
};

由于two overloads,您需要const correctness。 (如果您只想授予读访问权限,而不是写访问权限,那么当然不需要非const版本。)

答案 1 :(得分:2)

您可以重载operator[]来执行此操作。您可能需要查看this faq以获取有关使用operator()的建议。