我正在努力寻找如何在类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;
}
答案 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;
}