agregacja klas

0

Witam. Mam problem z agregacją klas. Na diagramie uml mam, że klasa A to klasa główna i z niej wychodzi strzałka z rombem (czyli agregacja) to klasy B i klasy C. Czyli w klasie A robię deklarację klasy B i C. Jednak na diagramie mam jeszcze strzałkę od klasy B do klasy C. Czy jeśli zrobię deklarację w ten sposób to będzie dobrze/sensownie/logicznie? :

class A {
public:
	class B {
	public:
		class C;
	};
};
0

Jest to poprawne w sensie kompilacji kodu (chociaż lepiej po ludzku bez zagnieżdżania klas), jednak niepoprawne ze względu rodzaj relacji. Kod prezentuje kompozycje a nie agragacje.
Agregacje wyraża się przez jakiś rodzaj wskaźnika lub referencji. Tutaj dokładne wyjaśnienie z przykładami:
http://xiaochongzhang.me/blog/?p=323

1

FYI:

class A {
public:
    class B {
    public:
        class C;
    };
};

w C++ znaczy prawie, że tyle samo co:

namespace A {
namespace B {
   class C;
}
}

generalnie chodzi o to, że w diagramach UML prawie nigdy nie spotkasz się z określeniem gdzie znajduje się definicja klasy, tylko raczej z czego ona się składa

1 użytkowników online, w tym zalogowanych: 0, gości: 1