je l'opérateur suivant défini dans une classe C++ appelé StringProxy
:Expliquer ce C++ définition de l'opérateur
operator std::string&()
{
return m_string;
}
a) Qu'est-ce que cela et comment cela fonctionne? Je comprends l'idée de la surcharge de l'opérateur, mais ils ressemblent normalement à X operator+(double i)
.
b) Étant donné une instance de StringProxy
, comment puis-je utiliser cet opérateur pour obtenir le m_string
?
Je crois en général que C++ static_cast serait préférable à l'ancien cast C. –
@Steven: Tout le monde n'est pas d'accord. http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=285 –
IMO cet article est largement basé sur une prémisse que lorsque les gens programment en C, ils sont tous des gourous, alors que les programmeurs C++ sont des noobs non traitables. La distribution en style C ne fait pas automatiquement la bonne chose, elle fera quelque chose, le plus souvent un casting de réinterprétation. On a toujours besoin de savoir exactement ce qu'il fait dans chaque cas pour savoir s'il fait la chose désirée. - Et il y a un endroit où vous avez absolument besoin d'alternatives de type sécurité à la fonctionnalité non-safe de C: * templates *. – visitor