2015-03-15 2 views
0

, пожалуйста, помогите мне с кодом C++, я прокомментировал все, что хочу, у меня есть класс DEF, у которого есть вектор типа ABC. У ABC есть несколько членов. У меня есть еще один класс ZYX, в котором я хочу перебирать членов класса ABC, используя вектор в классе DEF. Также я не могу изменить классы 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

Вы слышали о модификаторах доступа? есть ключевое слово, такое как 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 
} 
+0

Все участники общедоступны. Я ищу код для итерации ... в классе ZYX. У меня нет контроля над классом DEF или ABC –

+0

. Тогда зачем представить макет ваших классов, постарайтесь сформулировать вопросы как можно точнее? Для итерации по контейнерам std рассмотрим ссылку на язык cpp http://www.cplusplus.com/reference/vector/vector/begin/ – hakononakani

+0

. Моя проблема заключается в том, что вектор содержит тип как некоторый класс, чьи члены, к которым я хочу получить доступ, не какой-то int, у меня также проблема с синтаксисом, где использовать -> и где '.' , поэтому некоторый фрагмент кода лучше поможет мне, который использует класс как типы, как я упомянул. –

Смежные вопросы