У меня возникли проблемы с методами доступа и параметрами с использованием разных классов, которые я использовал для кодирования Java, поэтому у меня нет проблем с использованием функций других областей.Извлечение данных из разных классов в C++
class Ball;
class Canvas4 {
public:
static const int num = 100;
vector<Ball> ballCollection;
Ball *myBall;
Ball getBallById(int id) {
return this->ballCollection.at(id)
};
};
class Ball {
friend class Canvas4;
public:
void lineBetween() {
for (int i=0; i<Canvas4::num; i++) {
Ball other = Canvas4::ballCollection.at(i);
//*Invalid use of non-static data member "ballCollection"
}
};
};
* Неправильное использование нестатического члена данных «ballCollection»
Я хочу, чтобы прочитать содержание определенного мячьего объекта по идентификатору и сделать некоторые искусства с ним.
EDIT
В другом классе я сделал.
#include "canvas4.h" //which contains both classes Ball and Canvas4
Canvas4 canvas4;
Так же, как и в Java, вам нужно экземпляр класса 'Canvas4', прежде чем вы можете получить доступ к его нестатические элементы. –
Я устанавливаю Canvas4 canvas4; В основном классе. – cleliodpaula
Итак, передайте ссылку на этот экземпляр в качестве параметра 'lineBetween' или что-то в этом направлении. В программе может быть несколько агитаций; как иначе 'lineBetween' должен знать, чью коллекцию шара он должен смотреть? –