在另一个类中迭代某个类的类型向量

时间:2015-03-15 18:24:42

标签: c++ c++11 vector iterator

请帮我解决C ++代码,我已经评论了我想做的事情,我有一个DEF类,它有一个ABC类型的向量。 ABC有一些成员。我有另一个类ZYX,其中我想使用类DEF中的向量迭代类ABC的成员。我也不能改变ABC和DEF类

class ABC{
   public:
    //some members and other stuff
}

class DEF{
    public:
    ....
    vector<ABC> cdf;    //ABC is some other class

}



//includes all the necessary part including DEF and ABC
class ZYX{

   //iterate over members of ABC using cdf
}

1 个答案:

答案 0 :(得分:0)

您是否听说过访问修饰符? 有一个关键字,如privateprotectedpublic,它们声明了如何从外部访问类中的变量。请在此处阅读:http://www.cplusplus.com/doc/tutorial/classes/ c ++类中的默认访问修饰符是私有的。这使得您在类中声明的变量无法从外部访问。

最简单的解决方案是制作您要使用的特定变量public

class DEF
{
public:
  vector<ABC> cdf;    //can be accessed from outside
}

不优雅但有效。可能更好的方法是声明一个函数返回对你想要访问的变量的引用,如:

class DEF
{
private:
  vector<ABC> cdf;    //can NOT be accessed from outside
public:
  vector<ABC>& get_cdf() { return cdf; }  //can be accessed from outside
}