class A
{
public:
A (unsigned _a) : a (_a)
{
}
operator unsigned&()
{
return a;
}
operator const unsigned() const
{
return a;
}
unsigned a;
};
В приведенном выше примере я создал два оператора преобразования типа, один дает ссылку, один дает копию. У обоих есть свои недостатки. Любое предложение?Какова наилучшая практика перегрузки преобразования типов?
Поскольку оператор преобразования типов разрешен на C++, как мы можем наилучшим образом его использовать и где?
Если вы 'оператор без знака()' сопзЬ (т.е. 'оператор без знака() const'), то вы можете (и должны) иметь и другое. – ildjarn
, пожалуйста, также убедитесь, что вы достаточно читаете онлайн-материал, рассказывающий, почему его плохая идея имеет оператор преобразования (они не называются «литой оператор» с момента его преобразования, а не отбрасывания, и нет, нет такой вещи, как " imcit cast ") – PlasmaHH