1. Statyczna metoda
class Complex {
public:
Complex(double re, double im);
static Complex from_polar(duoble mod, double arg);
}
2. Specjalizacja z własnym typem
struct UsePolarCoordsPlease {};
UsePolarCoordsPlease from_polar;
class Complex {
public:
Complex(double re, double im);
Complex(double mod, double arg, UsePolarCoordsPlease);
};
Complex a{1, 2};
Complex b{5, 12, from_polar};
3. Wprowadzić osobny typ do przechowywania kątów, który nie jest domyślnie
konwertowalny na liczbę i wtedy robisz specjalizacje dla niego. Ale to już
zdecydowanie najwięcej zabawy.
w.