Alors, je pensais que j’essayais de faire quelque chose de simple, mais apparemment pas …
J’ai écrit cette fonction pour pouvoir l’étendre plus tard et avoir un moyen rapide de donner à l’utilisateur un menu si nécessaire en accédant au menu(myssortingngs)
:
int menu(ssortingng a[]) { int choice(0); cout << "Make a selection" << endl; for(int i=0; i<a.size(); i++) { cout << i << ") " << a[i] <> choice; cout << endl; return choice; }
Mais pour une raison quelconque, je reçois:
main.cpp: In function 'int menu(std::ssortingng*)': main.cpp:38:12: error: request for member 'size' in 'a', which is of pointer type 'std::ssortingng* {aka std::basic_ssortingng*}' (maybe you meant to use '->' ?) int n = a.size();
quand j’essaye de comstackr. Quelqu’un pourrait-il traduire cette erreur pour moi et expliquer ce que c’est ->
, merci.
Vous passez un tableau de ssortingngs
et essayez d’appeler size()
sur le tableau. Les tableaux dégénèrent en pointeurs lorsqu’ils sont transmis à une fonction, ce qui explique votre erreur.
L’opérateur ->
, ou “opérateur de flèche” (nom que j’utilise), est simplement un raccourci pour (*obj).func()
. Ceci est utile si vous avez un pointeur sur un object de classe. Exemple:
ssortingng *s = &someotherssortingng; s->size(); //instead of (*s).size(), saves keystrokes