2

この機能を持つクラスCのインターフェイスを作成したいと思います。

friend bool operator==(const C& a, const C& b);*

テスト駆動の目的でCのモックを作成したいと思います。

私はこのようにそれをやってみました:

class IC
{
    virtual friend bool operator==(const IC& a, const IC& b) = 0;
};

私は何をすべきか?

4

1 に答える 1

0

operator ==二項演算子です。それを作るにvirtualは、それはクラスのメンバーでなければなりません。

class IC
{
    virtual bool operator==(const IC& b) = 0;
};

この場合、 の最初の引数==は暗黙的にthisです。

あなたの宣言は、クラスメンバーではなく、無料の関数に関するものです。

編集:コメントで示唆されているように、これを避けて、compare関数などを実装する必要があります。

于 2012-06-21T07:37:37.740 に答える