質問する
61 次
3 に答える
4
C++ 標準によると、13.2.1
同じ名前の 2 つの関数宣言は、同じスコープ内にあり、同等のパラメーター宣言を持っている場合、同じ関数を参照します。
これは、名前とパラメーターの型のみが考慮されることを意味します。戻り型ではありません。
戻り値で関数を呼び出し、その戻り値を無視できるため、これは理にかなっています。言語設計者が戻り値の型でオーバーロードを許可した場合、コンパイラは正当なコンテキストでこれらのオーバーロードを解決できなくなります。
于 2013-01-04T02:12:10.720 に答える
2
次の理由により、戻り値の型でオーバーロードできません。
int main() {
f(); // call to void f
f(); // call to int returning one
f(); // call to void
return 0;
}
すべてあいまいです。
float f() { return 0.0f; }
char f() { return 'a'; }
int i = f();
も曖昧です。
于 2013-01-04T02:10:48.210 に答える
1
戻り値の型でオーバーロードすることはできません。パラメータのみ。
于 2013-01-04T02:08:04.887 に答える