У меня есть классы, как показано ниже
class A
{
private:
B b;
}
class B
{
private:
C c;
D d;
}
C и D - класс хранения, который в основном содержит структуры и структуру данных. B обернуть оба вместе. Мне интересно, что является лучшим подходом в получении данных C и D или выполнении функции, если у меня есть объект A?
For example:
class A
{
private:
B b;
public:
B* GetB() { return &b;}
};
class B
{
private:
C c;
D d;
public:
C* GetC() {return &c;}
D* GetD() {return &d;}
};
class C
{
public:
functionA();
};
A a;
B* b = a.GetB();
C* c = b->GetC();
c->functionA();
OR
Я вообще не должен выставлять объект B:
class A
{
private:
B b;
public:
C* GetC() { return &b.GetC();}
D* GetD() { return &b.GetD();}
};
A a;
C* c = a.GetC();
c->functionA();
OR
Я не должен выставлять объекты B, C и D
class A
{
private:
B b;
public:
void performFunctionA() { b.performFunctionA(); }
};
class B
{
private:
C c;
D d;
public:
void performFunctionA() { c.functionA();}
};
class C
{
public:
functionA();
};
A a;
a.performFunctionA();
Почему мы выбираем одно над другим?
Спасибо