Gdy korzystasz z cin, to tak naprawdę wywołujesz funkcję (metodę w klasie), która odczytuje pewne dane z bufora (tj. tablicy), ustawia ewentualne flagi błędów itp.
Warto też zauważyć, że gdy pobierasz int, lub double, lub string, to cin będzie inną funkcją.
Ewentualnie możesz to traktować jako zmienną, z której możesz czytać dowoli, ale nie możesz nic do niej zapisać.