Добрый вечер. Мне нужно из класса B
получать доступ к методам класса A
. Имеется вот такой код:
#include <vector>
class B;
class A
{
public:
std::vector<B*> _b;
void setup()
{
for (auto it = _b.begin(); it != _b.end(); it++)
{
(*it)->setPtr(this);
}
}
};
class B
{
public:
A *_a = nullptr;
void setPtr(A *a) { *_a = *a; }
};
int main()
{
A a;
}
Компилятор выдает ошибки:
error C2027: использование неопределенного типа "B"
error C2227: выражение слева от "->setPtr" должно указывать на тип класса, структуры или объединения либо на универсальный тип
Как с таким бороться, если менять классы местами нельзя
Вынесите реализацию метода отдельно, после объявлений классов.
#include <vector>
class B;
class A
{
public:
std::vector<B*> _b;
void setup();
};
class B
{
public:
A *_a = nullptr;
void setPtr(A *a) { *_a = *a; }
};
void A::setup()
{
for (auto it = _b.begin(); it != _b.end(); it++)
{
(*it)->setPtr(this);
}
}
int main()
{
A a;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я хочу попытаться получить счетчик слов на основе префикса trieНо у меня есть некоторые проблемы
Подскажите пожалуйста, я правильно понимаю, что этот оператор в деструкторе используется только применительно к атрибутам, являющимися...
Телефонный номер называют "шахматным", если его цифры набирают на кнопочной панели телефона ходом шахматного коня