如何在对象B类C ++中使用对象A?

时间:2018-10-23 13:29:33

标签: c++ class

我正在努力寻找如何在类B中调用类A的对象。

#include <iostream>
using namespace std;

class A
{
public :
    void FA("an object param (aop)")
    {
        "aop".varB-=varA;
    }
protected :
    int varA = 1;
};

class B
{
public :
    int varB = 2;
};

int main()
{
    A a1;
    B b1;

    a1.FA("b1 object"); // I WANT TO CHANGE B1 MEMBER VALUE BY USING A1 FA FUNCTION

    cout << b1.varB;


    //Output: 1

    return 0;
}

1 个答案:

答案 0 :(得分:1)

下面是我要怎么做。请注意,这是有效的,因为依赖关系是单向的,即A::FA()需要了解B的实现细节,但是B不需要知道A的实现细节。如果它变成双向的, (即,如果您后来在B中添加了一个方法,该方法需要调用A上的方法或访问A的成员变量),则需要使用前向声明并将B类的方法的实现移至非内联两个类都声明后的位置。

#include <iostream>
using namespace std;

class B
{
public:
    int varB = 2;
};

class A
{
public:
    void FA(B & b)
    {
        b.varB -= varA;
    }
protected:
    int varA = 1;
};

int main()
{
    A a1;
    B b1;

    a1.FA(b1);
    cout << b1.varB;

    //Output: 1

    return 0;
}