Moje przeprosiny, jeśli to jest dupe. Znalazłem kilka postów ponownie. zapobieganie niejawnym konwersjom, ale nic nie jest. zachęcanie do ukrytych konstrukcji.Jakie argumenty należy przekazać do funkcji, aby wykonać niejawną konstrukcję obiektu?
Jeśli mam:
class Rect
{
public:
Rect(float x1, float y1, float x2, float y2){};
};
i wolna funkcja:
Rect Scale(const Rect &);
dlaczego
Rect s = Scale(137.0f, 68.0f, 235.0f, 156.0f);
nie niejawny budowę const Rect&
i zamiast generować ten błąd kompilatora
'Scale' : function does not take 4 arguments
Jeśli to wymuszasz, to nie jest to domniemane! – RQDQ