Zdravím,
struktura projektu je následující:
Main.cpp
ModuleOne.cpp
ModuleOne.h
ModuleTwo.cpp
ModuleTwo.h
ModuleOne.cpp a ModuleTwo.cpp obsahují implementaci tříd, které jsou definovány v jejich *.h souborech. Tyto .h soubory mají pro zjednodušení podobnou strukturu:
class ModuleOne
{
private:
int ResultInfo;
};
class ModuleTwo
{
private:
int ResultInfo;
};
Do souboru Main.cpp pak includuji #include "ModuleOne.h" a #include "ModuleTwo.h". Při pokusu o kompilaci končím na erroru: "Multiple definition of 'ResultInfo' ...".
Problém je zjevně v tom, že obě dvě třídy mají vlastnost, která se jmenuje stejně. Co mi ovšem nejde do hlavy je to, proč to něčemu vadí, když jsou obě private? Není právě toto jedna z věcí, které mají modifikátory přístupu zabránit?
A jak byste takový problém řešili? Je jasné, že přejmenováním proměnné asi nepřipadá v úvahu - bude-li nějaký interface, který by všechny "ModuleXXX.h" měly implementovat.
Děkuji za rady!