我有一个类“c”,它有类“a”和“B”的示例作为它的属性。我想在对象B中访问对象A的方法。目前,我在类b中定义了一个方法,它 Package 了类a的“add”方法,并将类a添加为类b的属性。是否有更好的OOP方法在类b中访问类a的方法?
#include <iostream>
class a
{
public:
a(){i = 1; j = 2;}
int add() { return i + j; }
private:
int i;
int j;
};
class b
{
public:
b() {}
int add() { return k + l; }
int adda() { return A.add(); }
private:
int k;
int l;
a A;
};
class c
{
public:
int add() { return A.add() + B.add(); }
int addainb() { return B.adda(); }
private:
a A;
b B;
};
int main()
{
c C;
int res = C.addainb();
std::cout << res << std::endl;
return 0;
}
1条答案
按热度按时间k97glaaz1#
有两种方法可以做到这一点,首先,定义类B的字段是一个指针(或引用)到类A的对象,以及构造器参数,该构造器参数是您希望引用/指向的A对象,然后在C构造器中在创建类B对象之前在类中创建类A对象,然后将A对象传递给B对象构造器,或者你可以使用函数标准库,并将 Package 器函数传递给B类(将对A类方法的调用 Package 到捕获它的函数中)。基本上,这两种选择都可以归结为:(我将使用A来表示类A的示例)
C创造了A
C创建B,传递给构造函数A*
B通过传递给它的指针调用A
指针是非常有用的,请告诉如果你有更多的问题(或我误解了问题!)