Je vais créer une classe pour contenir une longue liste de paramètres qui seront passés à une fonction. Utilisons cet exemple plus court:C++ pointeur privé "fuite"?
class ParamList{
public:
ParamList(string& a_string);
string& getString(); //returns my_string
private:
string& my_string;
}
Ma question est la suivante: my_string est privé, mais je retourne la référence. N'est-ce pas appelé quelque chose comme un pointeur privé qui fuit en C++? Est-ce que ce n'est pas une bonne pratique de programmation? Je veux que les appelants de getString puissent obtenir la référence et aussi la modifier.
Faites-le moi savoir s'il vous plaît.
Merci, JBU
edit1: les appelants utiliseront getString() et modifier la chaîne qui a été renvoyée.
Avoir des références en tant que membres est une pratique douteuse, sauf si vous savez exactement ce que vous faites. Mais je ne vois pas de pointeurs dans ce code. –
OK. Je ne sais pas ce que je fais. Que se passe-t-il si my_string est un pointeur et que getString renvoie un pointeur sur une chaîne? – jbu
Il devrait toujours retourner une 'const string *' – David