我想在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中是不可达的。它是否可以通过指针?
答案 0 :(得分:3)
但是A的对象无法在A
中到达
如果A类无法访问B类对象,则无法修改它们。重构设计后,应将其作为参数传递给函数:
class A {
//several other things
void flagchange(B& obj) {
if (human)
obj.flag = 1;
}
};
我希望能够为B
的每个对象切换A类方法的标志
您应该在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;
}
};