J.....Q konto usunięte 02.02.2013, 21:42:16 1 + #programowanie #cpp co oznacza zapis s = new double *[5] ?do S jest przypisywany dynamicznie wskaznik do tablicy 5 elementowej czy jak ?
KrzaQ2 KrzaQ2 02.02.2013, 21:45:23 0 + Do s jest przypisywany adres zaalokowanej tablicy 5 wskaźników na double lub jest rzucony wyjątek. Zakładając, że s ma odpowiedni typ, oczywiście.
J.....Q konto usunięte 02.02.2013, 21:52:13 0 + @KrzaQ2: @ChybaTak: Powiedzcie mi prosze jeszcze co oznacza ten zapis? typedef double (*fun)(double, double); fun *f[10];
J.....Q konto usunięte 02.02.2013, 21:57:31 0 + @hugerth: Tak umiem je ale chce sie upewnić że właściwie to interpretuje bo jutro mam egzamin a są troche podchwytliwe pytania.
J.....Q konto usunięte 02.02.2013, 21:58:16 0 + @JareQ: Powyższy przykład najpierw definiuje nowy typ który jest wskaźnikiem do funkcji, a później tworzy tablice f która zawiera wskaźniki do fun (czyli w skrócie tablica wskaźników do wskaźnika do funkcji) tak ?
KrzaQ2 KrzaQ2 02.02.2013, 22:07:02 0 + @JareQ: typedef nie definiuje nowego typu.typedef double (*fun)(double, double); fun *f[10];fun to wskaźnik na funkcję zwracającą double i przyjmującą 2 argumenty typu doublef to tablica 10 wskaźników na wskaźnik na funkcję zwracającą double i przyjmującą 2 argumenty typu double
KrzaQ2 KrzaQ2 02.02.2013, 22:08:30 0 + @KrzaQ2: 2013-02-02 23:07:32 <@KrzaQ> { cout << TYPE_DESC(f); } typedef double (*fun)(double, double); fun *f[10];2013-02-02 23:07:36 < gcc> lvalue array of 10 pointers to pointers to functions taking 2 doubles and returning doubles
J.....Q konto usunięte 02.02.2013, 22:12:24 0 + @KrzaQ2: a ten zapis: typedef double (fun)(double, double); fun f[10]; ?Więc co robi typedef ?
KrzaQ2 KrzaQ2 02.02.2013, 22:16:15 0 + @JareQ: cytując standard: If the decl-specifier-seq contains the typedef specifier, the declaration is called a typedef declaration and the name of each init-declarator is declared to be a typedef-name, synonymous with its associated type (7.1.3). If the decl-specifier-seq contains no typedef specifier, the declaration is called a function declaration if the type associated with the name is a function type (8.3.5) and an object declaration otherwise.To jest po prostu alias,Pokaż całość
KrzaQ2 KrzaQ2 02.02.2013, 22:19:32 0 + typedef double (fun)(double, double); fun f[10];fun bez zmianf to tablica 10 wskaźników na na funkcję zwracającą double i przyjmującą 2 argumenty typu double
do S jest przypisywany dynamicznie wskaznik do tablicy 5 elementowej czy jak ?
Komentarz usunięty przez moderatora
typedef double (*fun)(double, double); fun *f[10];
fun to wskaźnik na funkcję zwracającą double i przyjmującą 2 argumenty typu double
f to tablica 10 wskaźników na wskaźnik na funkcję zwracającą double i przyjmującą 2 argumenty typu double
2013-02-02 23:07:32 <@KrzaQ> { cout << TYPE_DESC(f); } typedef double (*fun)(double, double); fun *f[10];
2013-02-02 23:07:36 < gcc> lvalue array of 10 pointers to pointers to functions taking 2 doubles and returning doubles
Więc co robi typedef ?
name of each init-declarator is declared to be a typedef-name, synonymous with its associated type (7.1.3).
If the decl-specifier-seq contains no typedef specifier, the declaration is called a function declaration if the
type associated with the name is a function type (8.3.5) and an object declaration otherwise.
To jest po prostu alias,
typedef double (fun)(double, double); fun f[10];
fun bez zmian
f to tablica 10 wskaźników na na funkcję zwracającą double i przyjmującą 2 argumenty typu double