戻り値の型は関数のオーバーライドに影響しますか? (私が知る限り、return typde は関数/メソッド シグネチャの一部ではありません) 基本クラスには、引数を取得せず、戻りint
、純粋な仮想である関数があります。各派生クラスで、戻り値の型の列挙型を定義します。関数は派生クラスでオーバーライドされます。つまり、シグネチャは同じですが動作が異なります。問題は次のとおりです。オーバーライドは合法であり、戻り値の型は関数のオーバーライドの一部ではありませんか?
コード例:
class Base
{
public:
typedef int ret;
virtual ret method() = 0;
};
class Der1
{
public:
enum ret1{
ret1_0,
ret1_1
};
ret1 method() { return ret1_1;}
};
class Der1
{
public:
enum ret2{
ret2_0,
ret2_1
};
ret1 method() { return ret2_0;}
};