c-从另一个类调用一个类方法

我想在类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;
    }
};
上一篇:两个C#应用程序如何通过WiFi网络发送消息?


下一篇:java – 如何从JVM外部调用对象中的方法?