Я использую C ++ для очень маленькой части моего проекта. Должно быть, я что-то неправильно пишу, но мои знания C ++ такие, какие есть, и я не могу обойти это ...
См. Оба файла AbstractContactListener.h и .mm ниже. Проблема в методе isFixtureCollidingWithFixtureOfType (...), я не могу получить доступ к вектору _contact. Что я могу здесь делать не так?
Заголовок:
struct JRContact {
b2Fixture *fixtureA;
b2Fixture *fixtureB;
bool operator==(const JRContact& other) const
{
return (fixtureA == other.fixtureA) && (fixtureB == other.fixtureB);
}
};
class AbstractContactListener : public b2ContactListener {
id contactHandler;
public:
std::vector<JRContact>_contacts;
AbstractContactListener(id handler);
~AbstractContactListener();
void isFixtureCollidingWithFixtureOfType(b2Fixture fix, int type);
virtual void BeginContact(b2Contact* contact);
virtual void EndContact(b2Contact* contact);
};
Реализация:
AbstractContactListener::AbstractContactListener(id handler) : _contacts() {
contactHandler = handler;
}
AbstractContactListener::~AbstractContactListener() {
}
void isFixtureCollidingWithFixtureOfType(b2Fixture fix, int type){
std::vector<JRContact>::iterator ct;
// Next line is faulty... can't call _contacts.begin()
// xCode says: "Use of undeclared identifier _contacts"
ct = _contacts.begin();
}
void AbstractContactListener::BeginContact(b2Contact* contact) {
// ...
}
void AbstractContactListener::EndContact(b2Contact* contact) {
// ...
}
Необъявленная? Хм. Я думал, что объявил это в заголовке, сразу после ключевого слова public:
Что я могу здесь делать не так?
большое спасибо!
J.