C ++演算子のオーバーロード順序

可能重複:
  
C ++での演算子のオーバーロード(int + objとして)

私は以下のように*演算子をオーバーライドします:

Point Point::operator *(float scale){
    Point point(this->x*scale, this->y*scale);
    return point;
}

どうすればこの問題を解決できますか:

Point p1 (5.0, 10.0);
Point p2 = p1*4; //works fine
Point p3 = 4*p1  //error: no match for 'operator*' 
ベストアンサー

以下のようなフリー関数を書く:

Point operator *(float scale, Point p)
{
    return p * scale;
}

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です