我想在类A的方法成员中更改类B的变量成员.
例:
A.h:
class A
{
//several other things
void flagchange();
}
A.cpp:
void A::flagchange()
{
if (human) Bobj.flag=1;
}
我知道我需要一个类B的对象来更改B的变量成员,但是B的对象在A中无法访问.指针可以实现吗?
解决方法:
but objects of B are not reachable in A
如果A类无法访问B类的对象,则无法修改它们.重构设计后,应将其作为参数传递给函数:
class A {
//several other things
void flagchange(B& obj) {
if (human)
obj.flag = 1;
}
};
I want to be able to toggle the flag from a method of class A for every object of B
您应该在B中将标志公共变量声明为static:
class B {
public:
static int flag;
};
int B::flag = 0;
然后,从A内部:
class A {
//several other things
void flagchange() {
if (human)
B::flag = 1;
}
};