Asocjacja klass w C++


(przemekKK) #1

Czy mógłby mi ktoś wytłumaczyć na czym polega asocjacja w tym kodzie - chodzi mi o funkcję UstawRelacje:

class CFoo {/* jakiś kod */ };


class CBar

{

    private:

              CFoo* m_pFoo;


    public:

              void UstawRelacje(CFoo* pFoo) { m_pFoo=pFoo;}

};

Dziękuję za ewentualną pomoc.


(Sawyer47) #2

Nie ma tu za dużo to pisania, obiekty klasy CBar przechowują wskaźnik na obiekt CFoo i tyle można o tym kodzie powiedzieć. Jeżeli zna się C++, a w szczególności wie co to klasa, wskaźnik, funkcja to nie ma tu nic tajemniczego.


(przemekKK) #3

Poprawnie powinno być chyba tak:

CFoo* m_pFoo

a następnie:

m_pFoo = new CFoo

A nie jak jest teraz:

void UstawRelacje(CFoo* pFoo) { m_pFoo=pFoo;}

(system) #4

Tak jest. nr47 , miał chyba na myśli: "jak zwał tak zwał". Można to nazwać asocjacją, linkiem, dowiązaniem i jeszcze kilkoma innymi określeniami spotykanymi w literaturze.