process、inline function、functionのようにparameterを持つprocedureは、渡された値によって選ばれます。
inline sum(int x, int y)
inline sum(double x, double y)
inline sum(double x, int y)
この三つのinline functionは同じidentifierを持ちますがparameterとして指定されているデータ型が異なります。
inline sum(10,10);
inline sum(10.0,10.0);
前者はsum(int x, int y)が呼ばれます。10はint型の値だからです。後者はsum(double x, double y)が呼ばれます。10.0はdouble型の値だからです。
double d=10;
int i=10;
inline sum(d,i);
この場合、sum(double x, int y)が選択されます。dはdouble型の変数であり、iはint型の変数だからです。
尚、plangにおいてparameterとして渡された値の暗黙の型変換は行われません。よって、inline sum(int x)がinline sum(10.0)によって呼び出されることはありません。
Next: Tutorial 12. References
Prev: Tutorial 10. Classes