0

Qstring のメインウィンドウ クラス (または他のクラス) の + 演算子をオーバーロードしたいと考えています。これは私がこれまでに行ったことです:

void operator+(QString a,QString b)
{
    qDebug()<<"works";
}

しかし、実際には、QString + 演算子は既にオーバーロードされています (連結するためだと思います)。したがって、上記のコードを使用すると、あいまいさが生じます (両方の署名が同じです)。QString を保持する新しいクラスを作成せずに、実際の関数を自分の関数にオーバーライドするにはどうすればよいですか?

4

1 に答える 1

1

試してみてくださいQString operator+(QString a,QString b)。オーバーロードされた関数の戻り値の型は、void ではなく QString です。コンパイラは、戻り値の型だけが異なる 2 つのオーバーロードを区別できません。

于 2013-10-16T06:15:50.370 に答える