Перегрузка функций для предотвращения преобразования типа. Функции-члены для преобразования типа.
Для предотвращения неправильных преобразований типов при вызове функций следует использовать их перегрузку. В c++ предоставляется возможность добавления такой функциональности у классов, как приведение объектов класса к любому типу, для появления данной возможности в классе следует объявить и реализовать функцию следующего вида:
operator <new type>()
{
// function body
return <value with type “new type”>
}
Пример:
class Line
{
public:
operator double()
{
return length;
}
private:
double length;
}
int main()
{
Line line;
double lineLength = line; // == Line.length
}