Dzięki wielkie, działa :)
Mam jeszcze 2 pytania co do tego tematu:
PIERWSZE: Jak zrobić żeby obiekt klasy extLong mógł mieć sens logiczny? Mogę zrobić coś takiego:
Kopiuj
int zmienna = 1;
if(zmienna) wykonajcos();
Jak sprawić, abym mógł w ten sam sposób użyć obiektu klasy extLong?
DRUGIE: Chciałem aby nowy typ danych jaki stworzyłem extLong, był kompatybilny z typami long long oraz string. W tym celu przeładowałem prawie wszystkie operatory matematyczne i logiczne, tak abym mógł pracować zamiennie na liczbach zapisanych jako extLong, long long czy string. Zrobiłem to raz jako składowe klasy extLong, więc mogłem używać przypisania extLong = long long, zrobiłem wszystkie pozostałe operatory w drugą stronę, czyli jako luźne funkcje np. dodające long long + extLong. Nie udało mi się tylko zrobić operatorów przypisania dla: long long = extlong oraz string = extLong:
Kopiuj
string operator=(string a, extLong b)
{
a = b.str;
return a;
}
long long operator=(long long a, extLong b)
{
a = atoi(b.str.c_str());
return a;
}
Dostaję błędy:
[Error] 'std::string operator=(std::string, extLong)' must be a nonstatic member function
[Error] 'long long int operator=(long long int, extLong)' must be a nonstatic member function
Rozumiem, że skoro do przypisania wartości zmiennej podczas jej deklaracji musiałem dołożyć nowy konstruktor, to na wykonanie czegoś takiego nie ma szans?
Kopiuj
extLong ext = 24343252;
string s = ext;
Pozdrawiam