C++ 如何将成员类的函数设置为公共函数,而其他函数设置为私有函数?

C++ 如何将成员类的函数设置为公共函数,而其他函数设置为私有函数?,c++,C++,我想做一个这样的课程: class foo{ private: std::vector<DifferentClass> ClassVec1; public: int addDiffClass(){...returns id in vector...}; } class-foo{ 私人: std::vector ClassVec1; 公众: int addDiffClass(){…返回向量中的id…}; } 在这个类中,add函数返回一个id,我想将向量的.at或[]操

我想做一个这样的课程:

class foo{
private:
   std::vector<DifferentClass> ClassVec1;
public:
   int addDiffClass(){...returns id in vector...};
}
class-foo{
私人:
std::vector ClassVec1;
公众:
int addDiffClass(){…返回向量中的id…};
}
在这个类中,add函数返回一个id,我想将向量的.at或[]操作符设置为公共的,这样用户就可以像正常情况一样访问向量中的项。但是,我不希望push_back功能可用,以确保实际添加的对象是正确的


我如何才能做到这一点?

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

class myClass {
   private:
         std::vector<DifferentClass> ClassVec1;
   public:
       DifferentClass & operator[]( size_t elem ){
           return ClassVec1[elem];
       }
}
class-myClass{
私人:
std::vector ClassVec1;
公众:
不同类别和运算符[](大小元素){
返回ClassVec1[elem];
}
}

在包含类中编写包装器。由于整个内部类是隐藏的,因此无论如何都会通过包含的类访问它。只需将
at()
函数添加到您的类中,并让它调用私有类中的
at()
函数即可vector@Galik你能把这个作为答案贴出来,这样我就可以把它标记为已解决了吗?还有,这个帖子有什么问题吗?(为什么是反对票?)。它很简短,直截了当。包括一个示例,易于理解。