class MyClass
{
public:
void setVar(const char *str);
private:
std::string mStr;
int maxLength; //we only store string up to this length
};
Quelle est la meilleure approche pour implémenter setVar lorsque le code externe est susceptible de passer en NULL pour une chaîne vide (et ne peut pas être modifié)? Je fais actuellement quelque chose un peu comme:Meilleure façon de gérer le stockage (éventuellement NULL) char * dans une chaîne std ::
void MyClass::setVar(const char *str)
{
mStr.assign(str ? str : "",maxLength);
}
Mais il semble un peu salissant. des idées?
Je suppose que vous allez lire la valeur de la 'chaîne' ailleurs. Est-ce que ce code a besoin d'un 'char const *' ou d'un 'string'? – Thomas
En quoi pensez-vous que c'est désordonné? –
@ Thomas, pourquoi demandez-vous? Je pense que c'est mieux que ma nouvelle classe utilise STL ... en fait je le convertis de stocker des chaînes C parce que cela rend la copie de l'objet beaucoup plus sujette aux erreurs ... un nouveau champ est ajouté et par défaut n'est pas copié ! –