从另一个类调用类方法

时间:2014-01-18 04:33:53

标签: c++ class communication

我想在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中是不可达的。它是否可以通过指针?

1 个答案:

答案 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;
    }
};