J'écris une méthode d'accesseur pour un pointeur partagé en C ++ qui ressemble à ceci:
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
Donc, pour prendre en charge la const-ness du getBar()type de retour devrait être un boost::shared_ptrqui empêche la modification du Barpoint vers lequel il pointe. Je suppose que shared_ptr<const Bar>c'est le type que je veux retourner pour faire cela, alors que const shared_ptr<Bar>cela empêcherait la réaffectation du pointeur lui-même pour pointer vers un autre Barmais permettrait de modifier le Barpoint vers lequel il pointe ... Cependant, je ne suis pas sûr. J'apprécierais que quelqu'un qui sait avec certitude puisse confirmer cela ou me corriger si je me trompe. Merci!
constmodifie normalement ce que _précède, ainsi T *constest un constpointeur vers Tet T const*est un pointeur vers const T. Et il vaut mieux éviter d'utiliser constsans rien le précédant.
T *constet T const *est la même que la différence entre const shared_ptr<T>etshared_ptr<const T>
*et->le confirmer.