Dobrý večer,
Jsem úplný začátečník v C++, učím se sám jak jenom můžu. Nedávno mě napadlo, že kód:
#include <iostream>
namespace my
{
bool funkce(void);
}
struct my
{
bool funkce(void);
} ob;
int main()
{
if (my::funkce()) std::cout << "a\n";
if(ob.funkce()) std::cout << "b\n";
return 0;
}
bool my::funkce(void) // soucast jmenneho prostoru my
{
return true;
}
bool my::funkce(void) // clenska funkce
{
return true;
}
nemůže fungovat, protože by překladač nevěděl, jakou funkci právě definuji. Ale už mi není moc jasné, proč nefunguje, když funkci definuji přímo v třídě. tedy napíšu:
struct mu
{
bool funkce(void){return true;}
} ob;
- stejně jsou chyby při překladu.
Protože jsem začátečník, a toto asi moc nechápu, ptám se tady. Řekl bych, že v druhém příkladu už nic nejednoznačného není.
Za případnou odpověď děkuji.