Caute,
chcel by vas poprosit o radu. Mam nasledovne definovanu triedu CCislo.
Pretazil som operatory "=" a "==" tak aby bolo mozne triedu porovnat a priradit jej celociselnu hodnotu.
Tieto 2 veci funguju spravne. Mam vsak nasledovny problem, s ktorym neviem pohnut.
Ako mam nadefinovat, prepisat tuto triedu, aby sa spravala podobne ako trieda string, alebo QString :
to znamena dalo sa snou urobit toto : printf("%d", c); kde c je premenna danej triedy. A ma sa vypisat
cele cislo iCis.
Nechcem to vsak urobit nadefinovanim ziadnej funkcie do CCislo, ktora mi to vypise, alebo
vrati hodnotu privatnej premennej iCis.
Chcem to urobit nasledovne :
CCislo c(100);
printf("Hodnota = %d", c); a vypise sa Hodnota = 100.
Da sa to urobit pretazenim nejakeho operatora alebo nejak inak?
class CCislo
{
private:
int iCis;
string a, b, c;
public:
CCislo (int cislo)
{
iCis = cislo;
}
CCislo operator=(int cislo)
{
iCis = cislo;
}
bool operator==(int cislo) const
{
return (iCis == cislo);
}
~CCislo() {
}
};
int main(int argc, char *argv[])
{
CCislo c(100); //funguje
c = 100; //funguje
/*funguje*/
if (c == 100)
{
printf("Rovna sa\n");
}
else
{
printf("Nerovna sa\n");
}
/*nefunguje*/
// printf("Hodnota = %d", c);
system("PAUSE");
return EXIT_SUCCESS;
}
Edit: DÁVEJTE ZDROJOVÉ KÓDY DO INTERNÍHO TAGU CODE!