вызов метода класса из другого класса

Я хочу изменить переменную члена класса 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. Возможно ли это с помощью указателя ??

1

Решение

но объекты 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;
}
};
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector