Accesseur sur un tableau - C++ - Programmation
Marsh Posté le 22-09-2010 à 22:13:12
une idée de réponse peut être trouvée ici: http://www.developpez.net/forums/d [...] r-vecteur/
c'est avec un vecteur et pas un tableau, mais c'est assez utile
Marsh Posté le 22-09-2010 à 22:17:59
Je sais pas si c'est la meilleure méthode, mais c'est comme ça que je fais.
Code :
|
Marsh Posté le 22-09-2010 à 22:58:59
tu peut renvoyer le tableau par valeur. la NRVO va se charger d'optimiser tout ça.
Marsh Posté le 23-09-2010 à 04:53:46
qu'est-ce que tu entends retourner le tableau par valeur ? faire comme snafu8 en enlevant le & ? (d'ailleurs, je ne vois pas trop quelle est sont utilité ici...)
Marsh Posté le 23-09-2010 à 08:45:48
1/ utilise std::array ou boost::array au lieu d'unt ableau nu
2/
Code :
|
L'article sur la (N)RVO : http://cpp-next.com/archive/2009/0 [...] -by-value/
Marsh Posté le 23-09-2010 à 22:23:07
Joel F a écrit : 1/ utilise std::array ou boost::array au lieu d'unt ableau nu
|
il faut tout le temps retourner par valeur et passer les arugments par valeur ?
Marsh Posté le 23-09-2010 à 23:31:20
on peut passer les paramètres par référence constante non ?
Marsh Posté le 24-09-2010 à 07:22:16
Comme indiqué dans les commentaires de l'article, ça dépend.
Les retours apr valeurs s'optimisent très bien tout seul
Pour les paramètres, il ne faut passer par valeur que les parametres sur lequels nous auriont fait une copie de toute façon.
Marsh Posté le 22-09-2010 à 20:37:14
Bonjour !
Je débute en c++ et j'aurais aimé connaître la meilleure méthode pour faire un accesseur sur un tableau.
J'ai une classe du type:
Class A{
protected:
int tableau[2]
}
et j'aimerais faire un accesseur sur ce tableau. En java j'aurais fait une copie et je l'aurais retourné directement mais en c++ je ne sais pas trop... En C je me serais arrangé pour ne pas avoir à faire un truc comme ça ou sinon je l'aurais encapsulé dans une struct ou j'aurais fournis un tableau à l'accesseur du style: getTableau(int * destination,int taille_tab)
Mais en C++ je ne sais pas quelle est la méthode la plus efficace.
Des idées ?
Merci