MaSTaH Opublikowano 28 Stycznia 2006 Zgłoś Opublikowano 28 Stycznia 2006 Wyjaśnij poniższe instrukcje i zilustruj odpowiednimi przykładami: wektor* (funkcja)(float * & a, const int * const ptr_n); wektor (*funkcja(float *, wektor * const ptrWek))[2]; void* (*pole)( void (*f)(int &z), const wektor *ptrWek); short unsigned int(**a)[3]; z = new wektor**[m]; Kto da rade? :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 28 Stycznia 2006 Zgłoś Opublikowano 28 Stycznia 2006 Na pewno ktoś powalczy. Teraz jak pacze na składnie C++ to aż mnie skręca. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MaSTaH Opublikowano 28 Stycznia 2006 Zgłoś Opublikowano 28 Stycznia 2006 Wektor jest klasa (zawierajaca skladowe wektora). Egzamin sie zbliza a ja mam jeszcze problem z takimi kwiatkami. HELP! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
jkotor Opublikowano 28 Stycznia 2006 Zgłoś Opublikowano 28 Stycznia 2006 Ojoj, jutro do południa coś rozwikłam, bo dzisiaj to nie pójdzie ;] Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
__max Opublikowano 28 Stycznia 2006 Zgłoś Opublikowano 28 Stycznia 2006 (edytowane) Nie rozumiem, co Wy chcecie od składni kochanego c++ ;P A tak na serio to niezła masakra... 1. wektor* (funkcja)(float * & a, const int * const ptr_n); Deklaracja funkcji o nazwie 'funkcja', której parametrami wywołania są kolejno: -referencja do wskaźnika do typu float, o nazwie 'a' (float * & a) -stały wskaźnik do stałej typu int, o nazwie ptr_n (const int * const ptr_n) (stały wskaźnik to wskaźnik, którego nie można przesuwać, natomiast wskaźnik do stałej to wskaźnik do obiektu, którego wartości nie można zmieniać) Funkcja ta zwraca wskaźnik do obiektu klasy wektor. 2. wektor (*funkcja(float *, wektor * const ptrWek))[2]; Również deklaracja funkcji: 'funkcja' jest funkcją przyjmującą jako argumenty(parametry): -wskaźnik do zmiennej typu float (float *) -stały wskaźnik(o nazwie ptrWek) do obiektu klasy wektor (wektor * const ptrWek), i zwracającą wskaźnik do dwuelementowej tablicy obiektów klasy wektor 3. void* (*pole)( void (*f)(int &z), const wektor *ptrWek); Deklaracja wskaźnika do funkcji: 'pole' jest wskaźnikiem do funkcji przyjmującej jako argumenty: -wskaźnik(o nazwie f) do funkcji przyjmującej jako parametr referencję(o nazwie z) do zmiennej typu int i zwracającej typ void(void (*f)(int &z)) -wskaźnik(o nazwie ptrWek) do stałego obiektu klasy wektor(const wektor *ptrWek) zwracającej wskaźnik typu void 4. short unsigned int(**a)[3]; Deklaracja wskaźnika(o nazwie a) do wskaźnika do 3-elementowej tablicy obiektów typu short unsigned int 5. z = new wektor**[m]; przypisanie do wskaźnika(o nazwie 'z') dynamicznie alokowanej, m-elementowej tablicy wskaźników do wskaźników do obiektów klasy wektor Czytając cuś takiego(pierwsze cztery przypadki) idziemy od identyfikatora(nazwy) całego ustrojstwa najpierw na prawo do ewentualnego zamknięcia nawiasu, później od identyfikatora na lewo, znowu do zamknięcia nawiasu. Po wyjściu z nawiasu znowu na prawo itd... Generalnie główną zasadą tu obowiązującą jest zasada pierwszeństwa operatorów. Oto ich priorytety(od najważniejszego): 1. Nawias, czyli: '()', oznaczający albo wymuszenie pierwszeństwa(jak w matematyce), albo funkcję(listę jej parametrów) 2. Tablica, czyli: '[]' 3. Wskaźnik/referencja(chyba mają ten sam priorytet), czyli byłoby odpowiednio: '*'/'&' Uff........ Strasznie to wszystko zamotane, ale mam nadzieję, że się nigdzie nie machnąłem :) (starałem się pisać jakoś w miarę zrozumiale:)) Z góry przepraszam za zawiły styl mojej wypowiedzi jak i za łopatologię;) Gdzie Ty Człowieku studiujesz;))? Edytowane 28 Stycznia 2006 przez __max Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...