Witam i grzecznie pytam :)
Mam obiekt ms klasy MS, który ma dużo zmiennych i muszę tam wpisać zmienne z tablicy.
Pisanie kolejno
ms.godzina=tab[0];
ms.minuta=tab[1];
etc etc
byłoby głupotą, zwłaszcza, że kolejne zmienne są tego samego typu - int.
Jedynym rozsądnym wyjściem jest tu odwołanie się do kolejnych zmiennych w obiekcie ms.
Nie ma czegoś takiego w klasach jak w przypadku verctorów (których NIE MOGĘ użyć i już), że mogę się odnieść do kolejnych zmiennych/obiektów w ten sposób:
ms[0]
ms[1]
itd
Wymyśliłem więc, żeby używać adresu pierwszej zmiennej aby dostać się do poszczególnych zmiennych za pomocą liczby:
#include <iostream>
using namespace std;
class MS
{
public:
int var;
int minn;
int maxx;
};
int main()
{
MS ms;
for(int a=0;a<3;a++)
{
*(&ms.var+a)=a+1000;
cout <<(int)(&ms.var+a)<< " "<< *(&ms.var+a)<<endl;
}
return 0;
}
Pytanie brzmi:
Czy mogę być pewny, że obiekt po utworzeniu zapisywany jest w pamięci w taki sposób, że adresy kolejnych zmiennych zawsze będą ułożone po sobie?
A może jest sposób aby odnieść się do kolejnych elementów obiektu za pomocą liczby, gdzie liczba ta będzie oznaczała numer kolejnego elementu w takiej kolejności jak są zadeklarowane w klasie? Czyli tak jakby to było w przypadku tablicy
ms[0] to var
ms[1] to minn
itd. Wiadomo, że nie tak jak do tablicy, bo kompilator nie puszcza, ale może jest analogiczny sposób dla klas?