Próbka o zredukowanym kodzie próbnym nie robi nic użytecznego, ale dwa kolejne przypisania do wskaźnika elementu danych. Pierwsze przypisanie działa, drugie daje błąd kompilatora. Prawdopodobnie dlatego, że jest to element zagnieżdżony.Zagnieżdżony wskaźnik elementu danych - niemożliwe?
Pytanie brzmiało: czy nie jest możliwe, aby wskaźnik elementu wskazywał na element zagnieżdżony lub czy brakuje mi tam jakiejś wymyślnej składni?
struct Color {
float Red;
float Green;
float Blue; };
struct Material {
float Brightness;
Color DiffuseColor; };
int main() {
float Material::* ParamToAnimate;
ParamToAnimate = &Material::Brightness; // Ok
ParamToAnimate = &Material::DiffuseColor.Red; // Error! *whimper*
return 0; }
ATM Pracuję nad wykorzystaniem przesunięć bajtów i wielu rzutów. Ale to jest brzydkie, chciałbym raczej użyć tych wskaźników dla członków.
Tak, wiem, że to pytanie z pewnością powstało wcześniej (jak prawie każde pytanie). Tak, wcześniej szukałem, ale nie znalazłem satysfakcjonującej odpowiedzi.
Dzięki za poświęcony czas.
jpalecek jest poprawny; odpowiedź na twoje pytanie brzmi: nie. Ale to, czego naprawdę szukasz, to rozwiązanie problemu. Po drobnej restrukturyzacji danych możesz znaleźć typ, który wskazuje na wszystkie cztery pływaki. (Patrz poniżej.) –