当其余是私有的时候,如何将成员类的功能公开?

时间:2017-05-21 17:21:04

标签: c++

我想创建一个这样的课程:

class foo{
private:
   std::vector<DifferentClass> ClassVec1;
public:
   int addDiffClass(){...returns id in vector...};
}

在这个类中,add函数返回一个id,我想让向量的.at或[]运算符公开,这样用户就可以正常访问向量中的项目了。但是我不希望push_back函数可用于确保实际正确添加对象。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

可以按如下方式限制可用方法。

class myClass {
   private:
         std::vector<DifferentClass> ClassVec1;
   public:
       DifferentClass & operator[]( size_t elem ){
           return ClassVec1[elem];
       }
}