typedef int INT;
1.void f(int x);
2.void f(INT x);
3.g(char (*) [10]);
4.g(char [5] [10]);
の両方のオーバーロードf
が存在できます! の両方のオーバーロードg
が存在できます!
クラスでこれらの関数をオーバーロードできますか? 基本クラスでは 1,3、派生クラスでは 2,4 として。
typedef int INT;
1.void f(int x);
2.void f(INT x);
3.g(char (*) [10]);
4.g(char [5] [10]);
の両方のオーバーロードf
が存在できます! の両方のオーバーロードg
が存在できます!
クラスでこれらの関数をオーバーロードできますか? 基本クラスでは 1,3、派生クラスでは 2,4 として。
both the overloads of `f` can exist?
いいえ、INT の基になる型はint
両方ともf
同じ関数シグネチャを持ちます。C ++を壊します
both the overloads of g can exist?
番号。配列はポインターに崩壊するためchar [5] [10])
、 char (*) [10]
どちらが同じ型になります。
関数オーバーロードの重要なルールは、関数が異なるパラメーター リスト (パラメーターの型または数) を持つ必要がある異なるシグネチャを持つことです。
サンプル コードを参照してください:リンク