>>408-409で納得したと思ったら>>410でまた混乱

関数側じゃなくて引数に使うRect型のコンストラクタを多重定義するなら
draw_rectはRect受け取るやつだけでいいんじゃないの?