Zdravím všechny. Po nějaké době se sem znovu obracím s dotazem, protože něčemu nerozumím. Tentokrát je asi vše úplně jednoduché, jen nevím, jak na to. Snažil jsem se o to deklarovat dvě třídy tak, aby každá obsahovala ukazatel na další třídu a ukazatel na třídu toho typu, kterého je. Můj cíl by měl osvětlit nefunkční případ dvou souborů, u kterého vím, proč nefunguje. Ale jde na něm vidět o co se pokouším.
edit: Vím, že nemůže a.hpp vkládat b.hpp a naopak. Psal jsem, že je to nefunkční případ. Měl upozornit na ty ukazatele v soukromé části. O něco takového se snažím.
// a.hpp
#ifndef A_HPP
# define A_HPP
# include "b.hpp"
class A
{
public:
A() {}
virtual ~A() {}
private:
A * p_a;
B * p_b;
};
# endif
// b.hpp
#ifndef B_HPP
# define B_HPP
# include "a.hpp"
class B
{
public:
B() {}
virtual ~B() {}
private:
B * p_b;
A * p_a;
};
# endif
Další soubor už by byl jen main.cpp který by obsahoval funkci main a vkládal by soubory a.hpp a b.hpp
otázka: Jak by bylo možné nejlépe vyřešit, aby každá z těchto dvou tříd obsahovala ukazatel na druhou třídu?
můj nápad: Vytvořil bych třídu C, a třídu A i B bych z ní dědil. Potom by ale podle mě stejně mohla každá třída obsahovat jen ukazatel na C, ale ne na druhou z těch tříd.
Za nějaké návrhy a odpovědi bych byl moc rád. Díky