C の非静的関数による静的関数のオーバーロード
コンテキスト:
関数のオーバーロード異なる戻り値の型を持つ関数は C ではサポートされていません。また、静的関数を非静的関数でオーバーロードしようとするときにも同じことが当てはまります。このシナリオは、提供されたクラス定義で示されていますが、エラーが発生しました。
標準禁止:
この動作は、C 標準 (ISO 14882: 2003、セクション 13.1/2):
曖昧さに関する考慮事項:
たとえオーバーロードが許可されていたとしても、次の理由によりあいまいさが生じます。
例:
<code class="cpp">class Foo { public: static void print() { cout << "static" << endl; } }; Foo f; f.print(); // Ambiguous: static or non-static call?</code>
代替アプローチ:
C では関数が静的に呼び出されているかどうかを判断することができないため、代替メソッドを使用して目的の機能を実現できます。
以上がC では静的関数を非静的関数でオーバーロードできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。