c++ 如何从另一个对象访问一个对象的方法,如果它们都是另一个对象的属性?

oxiaedzo  于 2023-04-23  发布在  其他
关注(0)|答案(1)|浏览(144)

我有一个类“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;
}
k97glaaz

k97glaaz1#

有两种方法可以做到这一点,首先,定义类B的字段是一个指针(或引用)到类A的对象,以及构造器参数,该构造器参数是您希望引用/指向的A对象,然后在C构造器中在创建类B对象之前在类中创建类A对象,然后将A对象传递给B对象构造器,或者你可以使用函数标准库,并将 Package 器函数传递给B类(将对A类方法的调用 Package 到捕获它的函数中)。基本上,这两种选择都可以归结为:(我将使用A来表示类A的示例)
C创造了A
C创建B,传递给构造函数A*
B通过传递给它的指针调用A
指针是非常有用的,请告诉如果你有更多的问题(或我误解了问题!)

相关问题