Ich entschuldige mich, wenn dies ein Betrogener ist. Ich habe eine Reihe von Posts gefunden. Implizite Konvertierungen verhindern, aber nichts re. ermutigende implizite Konstruktionen.Welche Argumente muss ich an eine Funktion übergeben, um eine implizite Konstruktion eines Objekts auszuführen?
Wenn ich habe:
class Rect
{
public:
Rect(float x1, float y1, float x2, float y2){};
};
und die freie Funktion:
Rect Scale(const Rect &);
warum
Rect s = Scale(137.0f, 68.0f, 235.0f, 156.0f);
keine implizite Bau eines const Rect&
tun und stattdessen diesen Compiler-Fehler erzeugen
'Scale' : function does not take 4 arguments
Wenn Sie es erzwingen, dann ist es nicht implizit! – RQDQ