请帮我解决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
}
答案 0 :(得分:0)
您是否听说过访问修饰符?
有一个关键字,如private
,protected
和public
,它们声明了如何从外部访问类中的变量。请在此处阅读: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
}