Je comprends les différences d'héritage de public, privé, protégé par rapport à la méthode de classe/constucts de propriété. Cependant, ma question est spécifiquement associée à des pointeurs sur null chaînes terminées ..C++ protégeant un caractère privé * d'une classe
class MyClass
{
private:
char * SomeValue;
...
...
}
Maintenant, quelque part dans le traitement, les maclasse-> SomeValue obtient alloué et peuplé d'une valeur de chaîne. Aucun problème. Maintenant, je veux une source d'appel qui a une instance de mon objet "MyClass" créé et a besoin de la valeur de la chaîne de cela. Puisque C++ peut faire beaucoup de dégâts avec des pointeurs, et des pointeurs vers des pointeurs, etc., je veux retourner l'emplacement du pointeur à la chaîne de caractères allouée, mais je ne veux pas que quiconque change les valeurs. Est-ce contrôlé par défaut dans le compilateur et la gestion de la mémoire? C'est un faible risque que quiconque utilise cette classe comme étant principalement à des fins internes, mais juste plus de ma compréhension.
Merci
Pour la petite histoire: Vous devriez faire 'get_SafeSomeValue' une fonction membre const ainsi. –
Donc le modificateur "const" force le niveau de protection? Merci ... cela semble être le consensus des réponses dans mes circonstances. – DRapp
non, vous pouvez toujours appeler 'supprimer myClassInstance-> get_SafeSomeValue()' et le compilateur ne vous dira rien. – Simone