Я хочу изменить переменную члена класса B в методе члена класса A.
Пример:
A.h:
class A
{
//several other things
void flagchange();
}
A.cpp:
void A::flagchange()
{
if (human) Bobj.flag=1;
}
Я знаю, что мне нужен объект класса B, чтобы изменить переменный член B, но объекты B не достижимы в A. Возможно ли это с помощью указателя ??
но объекты B не достижимы в A
Если объекты класса B недоступны классу A, вы не сможете их изменить. После того как вы реорганизовали свой дизайн, вы должны передать его в качестве аргумента функции:
class A {
//several other things
void flagchange(B& obj) {
if (human)
obj.flag = 1;
}
};
Я хочу иметь возможность переключать флаг из метода класса A для каждого объекта B
Вы должны объявить свой flag
публичная переменная как static
в B
:
class B {
public:
static int flag;
};
int B::flag = 0;
А потом, изнутри A
:
class A {
//several other things
void flagchange() {
if (human)
B::flag = 1;
}
};
Других решений пока нет …