Mam małe pytanie związane z konwersją typów w C++. Otóż mam w klasie moja_klasa funkcję konwertującą z typu danej klasy na typ int.
moja_klasa::operator int()
{
return (int) a;
}
Oczywiście w klasie mam też zadeklarowaną zmienną int a. Funkcję konwertującą napisałem by umożliwić przypisanie wartości zwracanej przez pewną funkcję składową do zmiennej globalnej. Interesuje mnie tutaj jedna rzecz - wartość (zmienna) zwracana przez tę funkcję składową to nie jest zmienna a, a jakaś inna zmienna składowa klasy. Dlaczego zatem przy tak napisanej funkcji konwertującej owa konwersja mimo wszystko zachodzi? Czy zmienna jaką posługuję się w funkcji konwertującej nie ma znaczenia, a konwersja jest możliwa w przypadku wszystkich zmiennych składowych których typ odpowiada zmiennej użytej w tej funkcji? A może w ogóle wszelkich zmiennych składowych? I co zrobić jeśli chciałbym mieć kilka funkcji konwertujących? (bo przeciążać ich nie można, czy wystarczy w takim wypadku, że konwersja odbywa się na inny typ?).