2010-09-16 9 views

Répondre

7

Vous avez la bonne syntaxe, mais si arr_ est un membre immédiat de la classe (et c'est probablement le cas), alors vous ne pouvez simplement pas renvoyer une référence sans coût à ce membre. A l'intérieur de la méthode arr ci-dessus, le membre arr_ est vu comme ayant le type const Chips[6][7]. Vous ne pouvez pas utiliser ce type pour initialiser une référence de type Chops (&)[6][7] car cela annulerait la const-correction. Pour ce qui précède pour vous compiler auriez besoin d'un const sur la référence retournée ainsi

... 
const Chips (&arr() const)[6][7] { return arr_; } 
... 

Mais dans tous les cas, vous serez beaucoup mieux avec un typedef

... 
typedef Chips Chips67[6][7]; 
const Chips67 &arr() const { return arr_; } 
... 
+0

attendu ';' avant 'Chips' attendu ';' avant 'const' J'ai essayé cela au début, mais j'ai eu les erreurs ci-dessus – david

+0

@david: Edited. Revoir. – AnT

+0

Merci qui a fonctionné parfaitement – david

-2

Vous avez besoin pour spécifier la fonction comme renvoyant un pointeur de jetons. Donc,

Chips* arr() const; 

Est ce que vous cherchiez.

+0

... J'abandonne. . –

+1

Je n'ai pas downvote, mais le downvote peut-être parce que cette réponse ne résout pas le problème, et ne compilerait pas. Renvoyer un pointeur * decayed * serait 'const Chips (* arr() const) [7]' (et je ne suis même pas sûr qu'il existe). Notez que seul le tableau externe peut/se décompose automatiquement en pointeur, donc si le type est 'int array [3] [4] [5]', il s'agit d'un * tableau de 3 tableaux de 4 tableaux de 5 ints * quand il se désintègre en un * pointeur vers un tableau de 4 tableaux de 5 ints *. Notez également que le problème est que la méthode membre étant const, l'élément retourné doit également être const - ou le compilateur se plaindra. –

+0

(1) L'OP n'a pas "besoin" de faire retourner la fonction par un pointeur (2) Votre "solution" ne fonctionne pas (3) Ce n'est pas ce que l'OP recherchait. Donc, fondamentalement, tout dans cette réponse est faux. – sellibitze